Visual studio 为什么我不能调试? 当我在VS2005中调试C++程序时,程序没有停止。 断点

Visual studio 为什么我不能调试? 当我在VS2005中调试C++程序时,程序没有停止。 断点,visual-studio,debugging,visual-studio-2005,Visual Studio,Debugging,Visual Studio 2005,为任何调用堆栈帧加载VS saidNo符号。无法显示源代码 我能做什么?听起来你是在连接到一个进程,而不是运行一个常规的调试会话?如果您确实要附加到进程,那么确保您尝试调试的二进制文件是使用IDE中当前打开的相同源代码构建的,这一点很重要 无论出于何种原因,符号路径中没有正确的符号.pdb文件。这可能有几个原因: 1您的二进制文件比.pdb文件编译得更晚。尝试重新编译所有内容 2您试图调试.dll,但忘记复制.pdb文件。也复制那些文件 您的代码也可能没有像您想象的那样执行。完成清理和重建,确保

为任何调用堆栈帧加载VS saidNo符号。无法显示源代码


我能做什么?

听起来你是在连接到一个进程,而不是运行一个常规的调试会话?如果您确实要附加到进程,那么确保您尝试调试的二进制文件是使用IDE中当前打开的相同源代码构建的,这一点很重要

无论出于何种原因,符号路径中没有正确的符号.pdb文件。这可能有几个原因:

1您的二进制文件比.pdb文件编译得更晚。尝试重新编译所有内容

2您试图调试.dll,但忘记复制.pdb文件。也复制那些文件


您的代码也可能没有像您想象的那样执行。

完成清理和重建,确保创建了.pdb?

尝试以下几个步骤:

调试->进入此步骤将确保在启动后立即停止 调试->窗口->模块 在列表中查找您的foo.exe。 检查符号状态。上面有没有说已经上膛了? 如果没有,请转到路径并确保: 那里有一个名为foo.pdb的文件 b foo.pdb上的时间戳与foo.exe匹配或非常接近
在尝试调试单元测试时,我在VS中使用c遇到了这个问题

您可以添加以下代码,这些代码将启动调试器的新实例,使您能够像正常情况一样逐步完成代码:

System.Diagnostics.Debugger.Launch();
System.Diagnostics.Debugger.Break();
谢谢大家

最后,我找到了一个解决办法

要启用调试,请执行以下操作:

1转到项目->HelloWorld属性

2在左侧展开配置属性

3扩展C/C++

4在左侧,选择“常规”

5在右侧,将调试信息格式更改为Program Database For Edit And Continue/ZI

5在左侧,选择优化

6在右侧,将优化更改为禁用/Od

7在左侧,展开链接器

8在左侧,选择调试

9将右侧的“生成调试信息”更改为“是”

10单击“确定”

11设置断点

12重建应用程序

此外,在运行应用程序时,请使用Ctrl+F5来构建和运行它,这会使控制台窗口保持足够长的打开时间,以便您查看输出


仅添加MainID尚未涵盖的另一种可能性:


在调试时,我实际上启动了一些程序,可以调用我想要调试的类,这是某种附加组件。被叫程序部分是用非托管C++编写的。当我选中“启用非托管代码调试”时,会出现错误,随后程序会崩溃,因为程序没有任何调试信息。

我通过执行以下操作解决了WP7中的此问题:

在解决方案资源管理器中的项目上单击鼠标右键Ctrl+W+S 选择“重建”。 再次选择项目,右键单击它并选择Deploy。 开始调试F5
我希望它能帮助你

错误的源代码仍然会中断,只是在源代码中的奇怪位置。如果没有中断,则可能是符号问题,而不是源代码问题。如果源代码与源代码不相同,则不会中断。我自己也注意到了这种行为。您是否在调试exe或dll?这是在意外杀死mspdbsrv.exe后发生的。杀死devenv.exe的子项是我有时用来停止monstruos构建的一种方法,当“取消构建”没有响应时。尝试找出是否有其他实例(例如,应用程序的发布版本)在后台运行@史蒂夫:调试目录中没有*.pdb。那就是你问题的根源。它可能是在某处产生的。去找到它,把它放在正确的地方。但是我正在调试C++程序,它有帮助吗?是的,你可以用C++来使用。这是MSDN上的文档:你可能想把它们放在这里的帖子里,以防链接移动。我一直在尝试这个方法,/ZI与/clr和/clr:pure不兼容。因此,对WinForms或基于.NET的应用程序没有好处。