0

我正在寻找一个功能 - 想知道它是否存在于某些 3rd 方插件或其他东西中。基本上我在想的是你可以设置的东西,就像一个断点,只是它不会停止执行。仅在执行该行代码时更改断点的外观(可能会更改颜色)。它甚至可以使用计数器,因此您可以随时查看该行运行了多少次。

基本上它会派上用场的地方是,当您以堆栈跟踪信息量不足的方式抛出异常时(可能错误处理在单独的线程中处理,或者不同的包具有不同的优化设置,因此并非所有都是直接的debuggable),然后您可以查看并轻松查看执行了哪些代码行,并非常快速地缩小异常的来源。我知道您可以在常规断点上设置命中计数,并且您可以将值设置得非常高以阻止它在这些点实际中断,但是断点计数器不会立即可见,因此您必须将鼠标一一悬停在它们上方以查看执行停止的位置。

我只是好奇是否有人看到了可以做这种事情的插件,或者我只是在这里做梦。

4

1 回答 1

2

您是否考虑过使用跟踪点?您通过正常的断点菜单添加它们,但您需要选择When hit...选项:

在此处输入图像描述

在应该出现的窗口中,您几乎没有可用的系统变量来描述谁调用了您的跟踪点 - 让我们添加, hits: {hits++}到默认值(我用红色标记了重要部分):

在此处输入图像描述

最后在放置跟踪点的类中定义一个 hits 变量:

class Program
{
#if DEBUG
    private static int hits;
#endif
...

在 VS 调试器下运行您的代码,您应该会在即时/输出(取决于您的设置)日志中看到如下所示:

Function: Program.Main(), Thread: 0x1604 Main Thread, hits: 1
Function: Program.Main(), Thread: 0x1604 Main Thread, hits: 2
Function: Program.Main(), Thread: 0x1604 Main Thread, hits: 3
Function: Program.Main(), Thread: 0x1604 Main Thread, hits: 4
Function: Program.Main(), Thread: 0x1604 Main Thread, hits: 5
Function: Program.Main(), Thread: 0x1604 Main Thread, hits: 6
Function: Program.Main(), Thread: 0x1604 Main Thread, hits: 7

希望能帮助到你:)

于 2012-10-26T08:03:54.727 回答