Программное обеспечение для мониторинга событий, запущенных из кода - PullRequest
2 голосов
/ 19 марта 2009

У меня проблемы с блоком кода, который, по моему мнению, связан с событием щелчка мыши, но я не могу точно зафиксировать точное событие в моем коде. Я использовал отладчик C #, чтобы пройти через мой код, и после завершения одного из моих событий код просто блокируется.

Цель моего поста - спросить, есть ли какое-нибудь программное обеспечение, которое будет следить за моим процессом и сообщать мне о событиях, которые запускаются после того, как я нажму клавишу F11, и код зависнет. Я пробовал SysInternals procmon.exe, но это не говорит мне, какие события запускаются.

Ответы [ 4 ]

2 голосов
/ 20 марта 2009

Вы пробовали Spy ++? Это инструмент, который поставляется с Visual Studio (по крайней мере, 2003 и 2005). На моих установках 2003 и 2005 по умолчанию Spy ++ находится по адресу: Начало | Программные файлы | Microsoft Visual Studio 200X | Инструменты Visual Studio | Spy ++

После запуска Spy ++ выберите «Найти окно» в меню «Поиск». Перетащите «Finder Tool» в окно или элемент управления, на котором вы хотите наблюдать за событиями, и нажмите «ОК». Щелкните правой кнопкой мыши на элементе, выбранном в дереве, и выберите «Сообщения». Откроется окно, в котором сообщения отображаются по мере того, как они попадают в интересующее вас окно.

Если Spy ++ не получает того, что вам нужно, что насчет Управляемого шпиона ? Это похоже на Spy ++, но специально для управляемого кода. Я не пробовал.

[Это] отображает древовидную структуру элементов управления в клиентском приложении на основе .NET. Вы можете выбрать любой элемент управления и получить или установить любое свойство на нем. Вы также можете регистрировать отфильтрованный набор событий, которые вызывает элемент управления.

1 голос
/ 19 марта 2009

Вы используете многопоточность? Если это так, старайтесь избегать передачи элементов управления и других объектов Windows Forms за пределы потока форм, поскольку отладчик попытается получить доступ к значению объекта, что приведет к его зависанию на некоторое время.

0 голосов
/ 19 марта 2009

Почему бы не использовать инструмент ведения журнала, такой как log4net ?

0 голосов
/ 19 марта 2009

CLRProfiler может делать то, что вы хотите.

Обзор состояния инструмента

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

Использование памяти действительно продается в этом описании, но оно упоминает «дерево вызовов», и эта ссылка на о том, как использовать это, упоминает

Вид дерева вызовов Предоставляет текстовый хронологический, иерархический взгляд на выполнение вашего приложения.

Удачи.

...