#c# #filter #stdin #cmd #visual-studio-debugging
#c# #Фильтр #stdin #cmd #visual-studio-debugging
Вопрос:
Я пытаюсь отладить программу фильтрации, написанную как консольное приложение C #. Использование программы будет выглядеть примерно так (выполняется из cmd.exe
):
C:MyDir>type inputfile.txt | myfilter.exe
Я попробовал очевидное: подключиться к cmd.exe
процессу и установить точку останова в моей Main
функции. Программное обеспечение запускается, символы не загружаются, отладчик не запускается, разработчик недоволен.
В разделе «Свойства проекта Debug
» можно задать аргументы командной строки. У меня нет никаких вонючих аргументов командной строки. Я хочу, чтобы файл был передан в STDIN
. Насколько это может быть сложно?
Ответ №1:
Неважно, я просто не думаю сегодня…
Вам просто нужно добавить Debugger.Launch()
вызов к вашему Main
методу:
static void Main(string[] args)
{
Debugger.Launch();
// rest of your program goes here
}
И Windows будет приятной и позволит вам отлаживать вашу программу. Я знал это — это способ отладки пользовательских действий в проектах установки…
Ответ №2:
Вам нужно прикрепить к myfilter.exe , тот факт, что он запускается из командной строки, не имеет значения. Однако, если у вас открыт проект в Visual Studio, вы просто начинаете отладку, и он автоматически подключается. Да, вы можете передать аргументы командной строки, либо запустить exe с соответствующими аргументами, а затем выполнить atatch, либо сделать это прямо из visual Studio. перейдите в свойства проекта консольного приложения, и в разделе отладки есть поле аргументы командной строки.