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

Использовать Console2 для отладки Visual Studio?

Есть ли способ использовать популярную замену Console2 cmd.exe для отладки Visual Studio? Другими словами, когда я отлаживаю консольное приложение под VS, я хочу, чтобы он использовал консоль2 вместо cmd.exe.

4b9b3361

Ответ 1

Интересный вопрос. Я заглянул в него, есть некоторые варианты, но никто не красив.

Console.exe принимает аргументы, поэтому можно запустить его со специальной вкладкой и выполнить произвольный процесс. Однако этот процесс всегда будет выполняться внутри его собственного cmd.exe; например, если ваша программа c:\my.exe и вы запускаете консоль как console.exe -t tabname -r c:\myexe Console2 внутренне вызывает CreateProcess( ... cmd.exe c:\my.exe ... ), в результате вы даже не можете увидеть вывод my.exe. Это легко решить: запустите его как console.exe -t tabname -r "/k c:\myexe": переключатель /k заставляет cmd.exe оставаться активным, и вы можете видеть свой стандартный вывод программы. (Я просмотрел источник, но не смог найти способ "привязать" вкладку к текущему запущенному экземпляру консоли, поэтому запуск с помощью аргументов всегда будет создавать новый экземпляр, не уверен, что это то, что вы ищете?

Вы можете легко изменить свойства отладки проекта, чтобы отразить выше:

Command: /path/to/console.exe
Command Arguments: -t tabname -r "/k $(TargetPath)"

Когда вы запускаете exe из VS, он запускает ваш exe с сеансом консоли. Однако отладка не будет работать, поскольку VS будет пытаться отлаживать console.exe, а не my.exe, поскольку это теперь другой процесс. Помещение DebugBreak(); в качестве первой строки в вашем exe main() будет решить эту проблему, поскольку она представит вам возможность отладки вашего exe. В общем, это может быть слишком много хлопот для достижения того, чего вы хотите, но я не думаю, что есть другой способ: Console всегда порождает новый процесс, поэтому единственный способ получить отлаживание - это присоединить отладчик к после этого процесс начался.

Ответ 2

Скотт Хансельман написал об этом.

Он предлагает использовать это значение для настроек консоли > вкладки > Главная > Оболочка:

%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86

К сожалению для меня это не работает для Visual Studio Express 2010, в котором отсутствует файл vcvarsall.bat.