【发布时间】:2009-03-18 09:08:03
【问题描述】:
如果我在 VC++ 6.0 项目中添加断点,然后开始调试,则会显示以下错误消息:
一个或多个断点无法设置且已被禁用, 执行将在程序开始处停止
它会显示反汇编窗口。这是什么问题?
如何添加断点并开始调试?
【问题讨论】:
-
愚蠢的问题,但这是调试版本吗?打开调试符号?您是否一直在使用编译器设置,或者它们是默认设置?
标签: debugging visual-c++
如果我在 VC++ 6.0 项目中添加断点,然后开始调试,则会显示以下错误消息:
一个或多个断点无法设置且已被禁用, 执行将在程序开始处停止
它会显示反汇编窗口。这是什么问题?
如何添加断点并开始调试?
【问题讨论】:
标签: debugging visual-c++
检查:
加号:
KB957912 - Visual Studio 2008 SP1 调试和断点更新 http://code.msdn.microsoft.com/KB957912/Release/ProjectReleases.aspx?ReleaseId=1796
【讨论】:
此问题主要发生在您在源文件中设置断点时,而不是您开始调试的源文件中。
假设您已经开始调试工作区 MainModule.dsw,并且从这个打开的 Visual Studio 编辑器本身中,您在其他 cpp 文件中插入了断点,那么在调试一开始您就会收到此错误。
如果您将源代码路径设置为 Visual Studio installaiton 的 vc 文件夹,您的编辑器将显示 winmain 方法或 dllmain 方法,而不是汇编代码。那么你就可以理解错误信息背后的主要逻辑了。
【讨论】:
我也遇到过这样的问题,但以前的代码运行良好,我什至将所有文件与另一个运行的实例进行了比较。问题是路径中带有前导和尾随空格的破折号。一旦我删除了尾随空格(例如“-dir”变成“-dir”),它就可以正常工作了。尽管您可能希望尽可能避免使用破折号。希望这对其他人有帮助。
【讨论】:
首先要检查的两件事是:
当您在发布配置中构建二进制文件时,这两者往往会被关闭。 IME,出现上述错误的最常见原因是有人忘记告诉链接器发出调试信息...
当带有损坏调试信息的二进制文件链接到可执行文件并导致调试信息不可用时,我也看到了这个问题。
【讨论】:
您很可能将“Win32 Release”作为活动配置。将其设置为“Win32 Debug”,您将获得必要的调试信息。
【讨论】: