首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Console2进行Visual Studio调试?

使用Console2进行Visual Studio调试?
EN

Stack Overflow用户
提问于 2010-11-03 22:34:22
回答 2查看 2.4K关注 0票数 30

有没有办法使用流行的Console2 cmd.exe替代工具来进行Visual Studio调试?换句话说,当我在VS下调试控制台应用程序时,我希望它使用Console2而不是cmd.exe。

EN

回答 2

Stack Overflow用户

发布于 2011-05-31 23:51:12

这个问题很有趣。我调查了一下,有一些选择,但没有一个是漂亮的。

Console.exe接受参数,因此可以使用特定的选项卡启动它并执行任意进程。但是,这个进程将始终在它自己的cmd.exe中运行;例如,如果您的程序是c:\my.exe,并且您在console.exe -t tabname -r c:\myexe Console2内部调用CreateProcess( ... cmd.exe c:\my.exe ... )时启动Console,那么您甚至看不到my.exe的输出。不过这很容易解决:作为console.exe -t tabname -r "/k c:\myexe"启动它: /k开关使cmd.exe保持活动状态,并且您可以看到程序的标准输出。(我查看了源代码,但找不到一种方法来将选项卡‘附加’到当前运行的控制台实例上,所以使用参数启动将始终创建一个新实例,不确定这是您正在寻找的吗?

您可以轻松地修改项目的调试属性以反映上述内容:

代码语言:javascript
复制
Command: /path/to/console.exe
Command Arguments: -t tabname -r "/k $(TargetPath)"

当从VS中启动exe时,它将在控制台会话中启动您的exe。但是,调试不会起作用,因为VS将尝试调试console.exe,而不是my.exe,因为这现在是一个不同的进程。在你的exe的DebugBreak(); ()的第一行放一个main可以解决这个问题,因为它会给你提供调试你的exe的选项。总而言之,要实现您想要的结果可能有点麻烦,但我认为没有其他方法: Console总是派生一个新进程,因此调试它的唯一方法是在该进程启动后将调试器附加到该进程。

票数 8
EN

Stack Overflow用户

发布于 2014-03-12 01:14:23

斯科特·汉斯曼blogged about this

他建议将此值用于Console Settings > tabs > Main > Shell:

代码语言:javascript
复制
%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86

对我来说不幸的是,这似乎不适用于Visual Studio Express 2010,因为它缺少vcvarsall.bat文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4088123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档