Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Handler Tracking

Boost , Boost.Asio , Core Concepts and Functionality

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Чтобы помочь в отладки асинхронных программ, Boost. Asio обеспечивает поддержку отслеживания обработчиков. При включении посредством определения BOOST_ASIO_ENABLE_HANDLER_TRACKING, Boost. Asio записывает отладку вывода в стандартный поток ошибок. Выход записывает асинхронные операции и отношения между их обработчиками.

Эта функция полезна при отладке, и вам нужно знать, как ваши асинхронные операции связаны друг с другом или каковы ожидаемые асинхронные операции. В качестве иллюстрации, вот вывод, когда вы запускаете пример HTTP Server, обрабатываете один запрос, а затем отключаете через Ctrl + C:

@asio|1298160085.070638|0*1|signal_set@0x7fff50528f40.async_wait
@asio|1298160085.070888|0*2|socket@0x7fff50528f60.async_accept
@asio|1298160085.070913|0|resolver@0x7fff50528e28.cancel
@asio|1298160118.075438|>2|ec=asio.system:0
@asio|1298160118.075472|2*3|socket@0xb39048.async_receive
@asio|1298160118.075507|2*4|socket@0x7fff50528f60.async_accept
@asio|1298160118.075527|<2|
@asio|1298160118.075540|>3|ec=asio.system:0,bytes_transferred=122
@asio|1298160118.075731|3*5|socket@0xb39048.async_send
@asio|1298160118.075778|<3|
@asio|1298160118.075793|>5|ec=asio.system:0,bytes_transferred=156
@asio|1298160118.075831|5|socket@0xb39048.close
@asio|1298160118.075855|<5|
@asio|1298160122.827317|>1|ec=asio.system:0,signal_number=2
@asio|1298160122.827333|1|socket@0x7fff50528f60.close
@asio|1298160122.827359|<1|
@asio|1298160122.827370|>4|ec=asio.system:125
@asio|1298160122.827378|<4|
@asio|1298160122.827394|0|signal_set@0x7fff50528f40.cancel

Каждая строка имеет вид:

<tag>|<timestamp>|<action>|<description>

всегда @asio и используется для идентификации и извлечения сообщений обработчика, отслеживающих выход программы.

— секунды и микросекунды с 1 января 1970 года UTC.

принимает одну из следующих форм:

>n

Программа вошла в число обработчика n. показывает аргументы обработчику.

<n

Программа оставила обработчику номер n.

!n

Программа оставила обработчику номер n из-за исключения.

~n

Номер обработчика n был уничтожен без вызова. Обычно это относится к незавершенным асинхронным операциям, когда сервис io_ разрушается.

n*m

Номер обработчика n создал новую асинхронную операцию с номером обработчика завершения m. показывает, какая асинхронная операция была начата.

n

Номер обработчика n выполнял некоторую другую операцию. показывает, как называлась функция. В настоящее время регистрируются только операции close() и cancel(), поскольку они могут влиять на состояние ожидающих асинхронных операций.

Там, где <описание> показывает синхронную или асинхронную операцию, формат <объектный тип>@.<операция>. Для записи обработчика он показывает раздельный список аргументов и их значений.

Как показано выше, каждому обработчику присваивается цифровой идентификатор. Если вывод отслеживания обработчика показывает число обработчика 0, это означает, что действие было выполнено за пределами любого обработчика.

Visual Representations

Вывод для отслеживания обработчика может быть обработан после обработки с использованием включенного инструмента handlerviz.pl для создания визуального представления обработчиков (требуется инструмент GraphViz dot).


PrevUpHomeNext

Статья Handler Tracking раздела Boost.Asio Core Concepts and Functionality может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Core Concepts and Functionality ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 18:30:48/0.0066289901733398/0