当我即将在VS2005中调试C ++程序时,该程序并未停止 断点。
VS说“没有为任何调用堆栈帧加载符号。无法显示源代码”。
我该怎么办?
答案 0 :(得分:20)
感谢大家。
最后,我找到了解决方案here。
启用调试:
1)转到项目 - > HelloWorld属性
2)在左侧展开“配置属性”
3)展开“C / C ++”
4)在左侧,选择“常规”
5)在右侧,将“调试信息格式”更改为“编辑并继续编程数据库(/ ZI)”
5)在左侧,选择“优化”
6)在右侧,将“优化”更改为“已禁用(/ Od)”
7)在左侧,展开“链接器”
8)在左侧,选择“调试”
9)在右侧,将“生成调试信息”更改为“是”
10)点击“确定”
11)设置断点
12)重建你的申请
此外,在运行应用程序时,使用Ctrl + F5构建并运行它,这会使控制台窗口保持足够长的时间以便您查看输出。
答案 1 :(得分:4)
尝试几个步骤:
答案 2 :(得分:3)
无论出于何种原因,您在符号路径中没有正确的符号(.pdb文件)。这可能有以下几个原因:
1)您的二进制文件比.pdb文件更新编译。尝试重新编译所有内容。
2)您正在尝试调试.dll并忘记复制.pdb文件。复制这些文件。
您的代码也可能没有像您想象的那样执行。
答案 3 :(得分:1)
听起来你是在附加一个进程而不是运行传统的调试会话?如果您确实附加到进程,请务必确保您尝试调试的二进制文件是使用IDE中当前打开的相同源代码构建的。
答案 4 :(得分:1)
完全清理并重建,确保.pdb被创建?
答案 5 :(得分:0)
我在尝试调试单元测试时遇到过这个问题(在VS中使用c#)。
您可以添加以下代码,这些代码将启动调试器的新实例,以便您像平常一样逐步执行代码:
System.Diagnostics.Debugger.Launch();
System.Diagnostics.Debugger.Break();
答案 6 :(得分:0)
只是为了增加MainID尚未涵盖的另一种可能性:
在调试时,我实际上启动了一些程序,它会调用我想要调试的类(它是某种类型的添加)。被调用的程序部分用非托管C ++编写。当我选中“启用非托管代码调试”时,会出现错误(随后程序崩溃),因为程序没有任何调试信息。
答案 7 :(得分:0)
我通过这样做解决了WP7中的这个问题:
我希望它会对你有所帮助!