执行路径特定断点

Posted

技术标签:

【中文标题】执行路径特定断点【英文标题】:Execution Path Specific Breakpoint 【发布时间】:2009-12-19 05:31:55 【问题描述】:

我希望 Visual Studio 调试器在调用来自特定调用者序列时在函数内中断。有没有办法设置这样的断点?或者也许是一些替代黑客?

我在本机 (C++) 和托管 (C#) 代码的上下文中问这个问题。

【问题讨论】:

【参考方案1】:

我认为您可以设置一个使用System.Diagnostics.StackTrace 类的conditional breakpoint。

编辑:GrayWizardx 在评论中指出这可能是不可能的。在这种情况下,您可能会导致代码以编程方式中断:

#if DEBUG
    // Use StackTrace class in this conditional to determine whether or not to break:
    if (yourConditionIsTrue)
    
        System.Diagnostics.Debugger.Break();
    
#endif

【讨论】:

据我所知,CBP 需要在没有实例化的情况下评估为真正的内联(即基本上是静态的),更不用说编写 CBP 了。 @GrayWizardx:确实如此——它会很笨拙。希望我的新建议更好。

以上是关于执行路径特定断点的主要内容,如果未能解决你的问题,请参考以下文章

无法设置 gdb 断点

为啥条件断点会在调试时降低应用程序的执行速度?

如何在 Java 类中找到使用特定方法的所有执行路径?

windbg断点命中时,其它线程在运行吗

visual studio 路径配置解决办法

js调试工具及微博登录分析