使用 devenv 在 C++ 可执行文件中调试回调

Posted

技术标签:

【中文标题】使用 devenv 在 C++ 可执行文件中调试回调【英文标题】:Debugging callbacks in a C++ executable with devenv 【发布时间】:2016-09-28 04:13:35 【问题描述】:

我有一个使用 MSBuild 和 CMake 构建的可执行文件,因为我想远离 Visual Studio,除非我在调试。我有一个回调,我无法判断它是否正常工作,所以我想调试它。问题是如果你用 devenv 打开一个 exe,它似乎只是打开了应用程序的入口点,它实际上并没有加载可以让我在回调上设置断点的源代码,因为它是一个回调,我所有的应用程序主函数都是注册回调,所以我无法使用我想要调试的回调来中断事件。

我知道我可以做一些棘手的事情,比如将回调代码放在 main.cpp 中并在那里设置断点,或者我可以调试 CMake 生成的解决方案,但我想知道是否有办法只需将应用程序调试到我可以打开与可执行文件关联的所有源文件的位置,而无需打开解决方案,只打开可执行文件?我想这样做的原因主要是为了速度,一个虚拟的解决方案在我的机器上运行比完整的解决方案快得多,它允许我在比 Visual Studio 快得多的文本编辑器中工作。

【问题讨论】:

【参考方案1】:

WinDbg工具是我可以知道的路径,如果你不使用VS IDE作为调试工具,它可以帮助你调试/加载源代码或其他。

https://msdn.microsoft.com/en-us/library/windows/hardware/ff556911(v=vs.85).aspx

【讨论】:

感谢您的信息,我会看看,如果有帮助,请告诉您。 @Trevor Hart,我期待收到您的来信 :)

以上是关于使用 devenv 在 C++ 可执行文件中调试回调的主要内容,如果未能解决你的问题,请参考以下文章

无法调试 C++ 可执行文件(“断点当前不会被命中”)

在 Visual C++ 2003 中附加到外部可执行文件

valgrind/callgrind 可以在发布的可执行 C++ 程序上工作吗?

C++ 可执行文件仅从 Visual Studio 启动

C++程序在VS2010中可以运行 但是debug里面的可执行文件不能单独运行 而DEVC++则均可以 啥情况 求解答。

buildbot C++ 在 Windows 上构建:使用 devenv.com、vcbuild.exe 还是 MSBuild.exe?