Как мне отладить программу фильтрации в Visual Studio 2010?

#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. перейдите в свойства проекта консольного приложения, и в разделе отладки есть поле аргументы командной строки.