在 Visual Studio 中调试由可执行文件调用的 C++ 文件
Posted
技术标签:
【中文标题】在 Visual Studio 中调试由可执行文件调用的 C++ 文件【英文标题】:Debugging the C++ file called by an executable file in Visual Studio 【发布时间】:2017-05-30 07:41:40 【问题描述】:我有一个 exe 文件,它将执行 cpp 文件并捕获结果。我想调试由 Visual Studio 中的 exe 文件调用的 cpp 文件。 目前 我在 Visual Studio 中将 exe 文件作为项目加载,我打开了由 exe 文件调用的 c++ 代码,并在相关位置保留断点。当我运行 exe 文件时,它不会在断点处停止,而是继续执行并停止。 是否要在 Visual Studio 中进行任何设置以在调试时控制 cpp 代码。
【问题讨论】:
如何启动程序?但只是运行还是通过调试呢? @Santosh,在您在 cpp 文件的代码行中添加断点后,请使用 F5(开始调试)真正调试您的应用程序,而不是使用“不调试启动(Ctrl+F5)运行您的应用程序",还请确保您的应用程序处于调试模式(不是发布模式),并且代码未优化。如果断点被命中,说明这个cpp文件中的代码真的被你的exe文件调用了。 cpp 文件没有被执行,它们被编译了。 使用以下链接中描述的过程在 Visual Studio msdn.microsoft.com/en-us/library/0bxe8ytt.aspx 中打开 exe。从解决方案资源管理器中右键单击 exe 文件并选择调试。文件按预期运行,但没有在断点处停止 @Santosh,我的理解和你的不一样,它是用来调试VS外的.exe,你真的想调试一个.exe调用的库,也许你可以参考到这个文件:msdn.microsoft.com/en-us/library/605a12zt.aspx 【参考方案1】:@santosh 我认为您正在加载 VC++ 项目文件(不是 Exe 文件)
-
您尚未构建您的项目(项目的编译)。
在菜单栏调试下下断点->开始调试或按F5。
即使您的调试器没有遇到断点,请在 VisualStudio 中的菜单栏中检查您的“symbols”工具 -> 选项 -> 调试 -> 符号 勾选 Microsoft 符号服务器 按确定。
再次构建您的项目并进行调试。
【讨论】:
以上是关于在 Visual Studio 中调试由可执行文件调用的 C++ 文件的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 调试模式编译的可执行文件: jmp 到函数体而不是调用中的直接地址