2

Иногда, исследуя проблемы SQL Server, я нахожу полезным иметь возможность подключить к нему отладчик Visual Studio и попытаться выяснить, что он делает, посмотрев на стек вызовов (общедоступные символы доступны и часто можно сделать выводы полезными информация из названий методов).

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

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

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

2 ответа2

3

Если я не ошибаюсь, вы, вероятно, ищете Process Monitor (он же procmon). Вы можете получить его с этого сайта Microsoft.

В частности, пункт меню "Сводка стека" содержит такую информацию. Подробнее в разделе PM2-6: Развертывание стека

2

Для этого можно использовать профилировщик в более поздних версиях Visual Studio.

Пример вывода

Скриншот

ответ здесь показывает, почему это полезно)

Кроме того, Windows Performance Toolkit является бесплатным и может делать то же самое и многое другое. Хорошую серию видео по этому вопросу можно найти по адресу https://channel9.msdn.com/Search?term=Defrag%20tools%20wpt#ch9Search.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .