代码之家  ›  专栏  ›  技术社区  ›  Tim Ring

我是否可以将VisualStudio2005设置为在调试时忽略特定代码区域中的断言

  •  5
  • Tim Ring  · 技术社区  · 17 年前

    下面是一个场景。我正在调试我自己的应用程序(C/C++),它正在使用公司另一个团队开发的一些库。当我的代码生成一些边缘案例时,断言失败。这是一种痛苦,因为断言没有正确表达,所以库函数工作正常,但我得到了所有这些中断,我只需要继续(在一个循环中),这样我就可以得到我真正感兴趣的东西。由于其他原因进行调试时,我必须使用库的调试版本。另一个团队在下一个版本之前不会解决这个问题(嘿,它在我们的机器上工作)。

    我是否可以告诉调试器忽略这段代码断言的断点(即它是否可以为我自动继续)。

    4 回复  |  直到 8 年前
        1
  •  3
  •   Community Mohan Dere    9 年前

    如果代码自己触发断点(通过_debugbreak或int 3),则不能使用条件断点,因为Visual Studio根本不知道这些断点。但是,您可以通过修改调试器中的代码来禁用任何不感兴趣的断点。可能不是您想要的,因为您需要在每个调试会话中重复此操作,但是仍然可能比什么都不做要好。欲了解更多信息,请阅读 How to disable a programmatical breakpoint / assert? .

        2
  •  2
  •   HitScan    17 年前

    在调试库中没有自动忽略ASSERT()失败的好方法。如果这是您必须使用的断言,您只需要说服其他团队,这需要立即修复,或者如果您有此库的源代码,您可以自己修复或删除断言,以便在此期间完成工作。

        3
  •  2
  •   TheJuice    17 年前

    您可以在对库的调用周围添加异常处理程序,捕获异常\断点异常,而不执行任何操作。

    下面链接中的示例2似乎就是您要执行的操作:

    http://msdn.microsoft.com/en-us/library/ms681409(VS.85).aspx