trucos - ¿Usar Console2 para la depuración de Visual Studio?
trucos visual studio code (2)
Interesante pregunta. Lo investigué, hay algunas opciones, pero ninguna es bonita.
Console.exe toma argumentos, por lo que es posible iniciarlo con una pestaña específica y ejecutar un proceso arbitrario. Sin embargo, este proceso siempre se ejecutará dentro de su propio cmd.exe; por ejemplo, si su programa es c: / my.exe y ejecuta Console como console.exe -t tabname -rc:/myexe
Console2 internamente llama a CreateProcess( ... cmd.exe c:/my.exe ... )
, como resultado, ni siquiera se puede ver la salida de my.exe. Sin embargo, esto se resuelve fácilmente: console.exe -t tabname -r "/kc:/myexe"
como console.exe -t tabname -r "/kc:/myexe"
: el console.exe -t tabname -r "/kc:/myexe"
/ k hace que cmd.exe permanezca activo y puede ver la salida estándar de su programa. (Miré a través de la fuente pero no pude encontrar una manera de "adjuntar" una pestaña a una instancia de consola en ejecución, por lo que al iniciar con argumentos siempre se creará una nueva instancia, ¿no está seguro de que esto es lo que está buscando?
Puede modificar fácilmente las propiedades de depuración del proyecto para reflejar lo anterior:
Command: /path/to/console.exe
Command Arguments: -t tabname -r "/k $(TargetPath)"
Al iniciar su exe desde VS, se ejecutará su exe en una sesión de consola. Sin embargo, la depuración no funcionará ya que VS intentará depurar console.exe, no my.exe, ya que ahora es un proceso diferente. Poner un DebugBreak();
como primera línea en main () de su exe solucionará esto, ya que le presentará la opción de depurar su exe. Con todo, esto puede ser demasiado complicado para lograr lo que quiere, pero no creo que haya otra forma: la consola siempre genera un nuevo proceso, por lo que la única forma de depurarlo es adjuntar el depurador a Después de ese proceso comenzó.
¿Hay alguna forma de utilizar el popular reemplazo Console2 cmd.exe para la depuración de Visual Studio? En otras palabras, cuando depuro una aplicación de consola en VS, quiero que use Console2 en lugar de cmd.exe.
Scott Hanselman blogueó sobre esto .
Sugiere usar este valor para Configuración de la consola> pestañas> Principal> Shell :
%comspec% /k ""C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/vcvarsall.bat"" x86
Tristemente para mí, esto no parece funcionar para Visual Studio Express 2010, que carece de un archivo vcvarsall.bat .