【问题标题】:Visual Studio 2008 - Get time interval between break points?Visual Studio 2008 - 获取断点之间的时间间隔?
【发布时间】:2009-11-06 21:16:23
【问题描述】:

有谁知道你是否可以在 VS 2008 中获得断点之间的时间间隔?插件?,VS技巧?

我不想在我现有的源代码中添加代码来计算运行需要多长时间,我想要一种快速而肮脏的方法来在调试时得到它。对于你们这些聪明的驴子,我知道我也可以随时拿出秒表,但我也想要一些精确的东西。

【问题讨论】:

    标签: visual-studio-2008 debugging


    【解决方案1】:

    您可以使用 Tracepoint - 当被点击时,会将您输入的内容输出到控制台窗口:

    alt text http://img24.imageshack.us/img24/3866/51292677.png

    那么你可以从前者中减去后者,得到两者之间的时间。

    【讨论】:

    • 谢谢,这正是我想要的。如果您的代码需要几秒钟才能运行,您还可以使用 {DateTime.Now.Second}
    • @Nikolai - “谢谢,这正是我想要的。”
    • @PhilipWallace - 所以?这个问题不是特定于 C# 的。他只是碰巧在使用 C#。
    • @Sinatr A tracepoint 是代码中的一个点,其中某些内容被打印到输出窗口,而不是停止程序执行。不幸的是,图像链接不见了,但我想 Phillip Wallace 打算在每个跟踪点打印 $TICK 变量(请参阅我的 $TICK 定义链接)。不幸的是,我自己尝试在 Visual C++ (VS2017) 中执行此操作,但只得到了 2 个似乎没有任何意义的十六进制值。
    【解决方案2】:

    添加两个手表:

    @clk
    @clk = 0
    

    调试器从上到下评估它们,因此@clk 将显示该调试器步骤所花费的时间,@clk = 0 将再次将其重置为 0 以进行下一步。

    【讨论】:

    • 这个 clk 变量的来源在哪里?我得到一个像“1861728”这样的无符号整数,我不确定如何解释——它只是毫秒数吗?编辑:在关注this link 之后,我通过 Hans Passant 对该问题的评论到达here
    【解决方案3】:

    在这方面,您可以通过@clk 调试宏使用一些有用的技巧。它给出了当前的时间戳。

    在第一个断点处添加@clk=0 的监视。这会将其重置为零。 在第二个断点处查看 @clk 的值 - 这将是自第一个断点以来的持续时间。

    【讨论】:

      【解决方案4】:

      想不出任何办法,但也许您可以使用性能向导来获取一些有用的(时间)信息。 另一方面,您可以在每次点击时打印一条消息,您可以打印当前时间。

      【讨论】:

      • -1 因为你一开始就说你什么都想不到。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-28
      相关资源
      最近更新 更多