#c# #visual-studio #debugging #dll
#c# #visual-studio #отладка #dll
Вопрос:
У меня есть myapp.exe
, что после некоторой сложной логики запускается другой программой. Я хотел отладить проблемы с myapp.exe
точно так же, как Visual Studio, предпочтительно с использованием точек останова. Как этого добиться? exe-файл является консольным приложением и запускается на месте. Это не запущенный процесс, поэтому я не могу подключить отладчик.
Ожидаемое поведение, которое я бы хотел, это:
- Творите чудеса и устанавливайте точки останова для этого exe и dll
- Вызовите exe-файл из другой программы
- Visual Studio достигает точки останова, и я могу отлаживать происходящее
Комментарии:
1. Хороший вопрос и отличная работа для осознания того, что вам нужно хорошо отлаживать, чтобы перейти к следующему этапу мастерства программирования. Честно говоря, поставьте точку останова (F9) в функции, вызывающей у вас проблему, а затем выполните пошаговый код (F11). Вам следует посмотреть короткое видео на YouTube по этой теме, чтобы понять, как использовать немедленное окно, окно стека вызовов, окно просмотра и как редактировать и продолжить, а также перетащить элемент управления кодом (желтая линия), чтобы пропустить строки вверх или вниз.
Ответ №1:
Просто используйте System.Diagnostics.Debugger.Launch()
место, куда вы хотите подключить отладчик. Вы можете поместить его непосредственно перед желаемым местоположением точки останова. Windows спросит вас, какой отладчик вы хотите подключить.
Другой способ — проверить систему.Диагностика.Отладчик.Прикрепите свойство и дождитесь отладчика, подобного этому (опрос):
while (!Debugger.IsAttached)
{
Thread.Sleep(500);
}
Приложение будет работать до тех пор, пока вы не подключите отладчик (в Visual Studio с помощью команды прикрепить к процессу, Ctrl alt P ).
Опять же, просто поместите точку останова после или даже в цикл, и все готово.
Это хорошо известный способ, используемый для отладки приложения-службы Windows, и он может быть полезен также для ваших целей.