Подтвердить что ты не робот

Как отлаживать программу командной строки С#

Я пытаюсь создать инструмент командной строки в С# с VS2010.

Мой вопрос: как мне отлаживать это, например, я бы выиграл. С winforms я могу выполнить код, увидеть значения на каждом отдельном шаге и т.д.

Здесь, однако, программа реагирует только тогда, когда я говорю с ней из командной строки. Я не могу начать сеанс отладки, так как это сначала полностью запустит программу. И из-за характера программы он будет закрыт, потому что не было аргументов командной строки.

Таким образом, отладка не может быть выполнена.

Что мне нужно сделать здесь?

EDIT: пример, так как кто-то сделал комментарий, который заставляет меня почувствовать, что это объяснение необходимо.

C:\Path\To\File\file.exe -help

Это пример того, как эта программа адресуется. Команда -help задается в той же строке, что и программа. Другими словами, я не могу сначала запустить программу, а затем дать ей команду во время ее запуска... потому что она больше не будет работать. Это начнется, посмотрите, что у него не было аргументов при запуске, и из-за этого выключение. Это как инструмент командной строки.

  • Активировать
  • Обработка возможных аргументов
  • Результаты вывода
  • Выключить автоматически

Это не то, что продолжает работать, пока вы не нажмете маленький x в верхнем правом углу.

4b9b3361

Ответ 1

В свойствах проекта в разделе "Отладка" вы можете ввести любые аргументы командной строки, которые хотите, а затем запустить приложение с помощью F5, отладчик будет автоматически подключен.

Ответ 2

Вы можете добавить вызов к Debugger.Launch к вашему стартовому коду. Затем вы можете скомпилировать и запустить свое приложение из командной строки. Вы получите подсказку о том, какой отладчик вы хотите присоединить (как правило, это будет список различных версий Visual Studio, которые вы установили), и прочь вы идете.

(Но на самом деле, установка параметров командной строки в свойствах проектa > вкладка "Отладка" - это лучший способ проделать большую часть времени. Если это не работает для вас, вы должны выяснить, почему.)

Ответ 3

Вы можете использовать Visual Studio для присоединения отладчика к приложению командной строки, когда он выполняется с правильными аргументами. Я не уверен, что ваше приложение быстро завершится или предоставит вам возможность подключить отладчик, но если это произойдет, это должно сработать.

Я использую VS2008, но я готов поспорить, что процесс похож в 2010 году:

  • В VS перейдите к Tools и нажмите Attach to Process
  • Выберите свое приложение из списка и нажмите Attach

Теперь VS должен быть в состоянии окунуться в ваше приложение и сломать ошибку.

Ответ 4

Вам просто нужно добавить точку останова в первую строку основной функции (вы можете сделать это, щелкнув по строке в редакторе Visual Studio и нажав F9) и нажмите F5, чтобы начать сеанс отладки.

Ответ 5

Либо добавьте точку останова к открытию { из Main, либо выполните шаги в программе (меню отладки). В этот момент установите параметр для параметра main (аргументы командной строки), выбрав его и щелкните правой кнопкой мыши/Добавить Watch или перетащите параметр в окно просмотра, если оно уже открыто. Дважды щелкните столбец "Значение" в окне "Смотреть" и установите его так, как вы хотите.

Примечание: добавленная стоимость должна быть допустимым кодом, то есть для добавления -help к строке [] вам нужно будет ввести new string[] {"-help"} или new [] {"-help"} в зависимости от версии вы используете.

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

Ответ 6

Если у вас есть аргументы командной строки, вам нужно выполнить другой маршрут для отладки. Перейдите в проект и затем выберите свойства. Там вы увидите раздел отладки и затем укажите требуемые параметры. Так что он позаботится о передаче параметров программе. Если у вас есть несколько параметров, отделите их пробелом. После этого, если вы отлаживаете, он сразу попадет в точку останова. Подробнее см. как отлаживать С# через аргументы командной строки в visual studio