Как использовать отладчик C # (или что-нибудь еще), чтобы проверить, что происходит во время события GUI в приложении с открытым исходным кодом? - PullRequest
1 голос
/ 28 ноября 2009

представьте, что вы получили большое красивое приложение на C # с полным исходным кодом. Итак, вы хотите выяснить, какие методы выполняются, когда вы делаете пользовательское событие, например, нажмите кнопку или нажмите горячую клавишу или что-то еще. База кода настолько велика, что вам не хочется искать соответствующую часть кода вручную, например, отслеживание обработчика событий для этой кнопки.

Хорошо, существует ли простой автоматизированный способ получения какого-либо журнала выполнения методов, начиная со времени T (когда я нажимаю кнопку)? Не могли бы вы объяснить и / или предоставить ссылки на статьи, конкретно касающиеся этой ситуации?

Ответы [ 4 ]

2 голосов
/ 23 июля 2010

Инструмент покрытия кода, который описывают другие, использует возможность профиля кода. Основой инструмента покрытия кода является то, что он использует приложение profiler и запрограммирован на выполнение сопоставления исходного кода и количества совпадений строк как часть его профилирования. В случае .NET покрытие кода и другие инструменты профилирования будут использовать .NET Profiling API . Даже NCover.

Существуют и другие инструменты, которые могут предоставить вам больше активности журнала, которую вы ищете, а не количество посещений. Вы даже можете программировать свое собственное приложение для профилирования, которое может войти в специальный XML-файл, а затем подписать его цифровой подписью, отметкой времени и загрузить его на серверный процесс.

  • AQtime , кажется, обладает возможностями контроля и ведения журнала, которые вы, возможно, искали.
  • Enterprise Architect от Sparx Systems включает приложение для профилирования, называемое SSProfiler75.exe, которое скрывается за своей способностью "преобразовывать" исходный код в диаграммы последовательности.

Подумайте о поиске кодовых инструментов для профилирования , а не просто кодовых инструментов покрытия, которые являются одним из вариантов использования профилировщика.

1 голос
/ 28 ноября 2009

Список выполняемых методов называется «охват кода».

Существуют инструменты, называемые «анализаторы покрытия кода», которые регистрируют вызванные методы: это полезно при тестировании кода, когда у вас есть один или несколько тестовых случаев и вы хотите знать, какие методы тесты «покрывают».

Один из примеров такого инструмента для C # называется NCover: ссылки на этот и другие инструменты см. В Покрытие кода для C # /. Net .

0 голосов
/ 28 ноября 2009

Я уверен, что кто-то может написать макрос, который программно добавит точки останова ко всем обработчикам событий !!

Visual Studio 2010 имеет представление иерархии методов, которое очень приятно, но оно недоступно в 2008

0 голосов
/ 28 ноября 2009

Вы можете использовать C # Visual Studio Express и установить точку останова в коде, а затем использовать пошаговую отладку из IDE. Вы также можете узнать, какой код выполняется при нажатии кнопки, дважды щелкнув ее в режиме конструктора. Это приведет вас прямо к соответствующему коду, и вы можете просто поставить точку останова и запустить приложение.

Нет правила, согласно которому вы не можете использовать VS для отладки приложения с открытым исходным кодом, даже если VS является закрытым исходным кодом. И это бесплатно, так почему бы и нет?

...