【问题标题】:Windbg: Printing the breakpoint number which triggeredWindbg:打印触发的断点号
【发布时间】:2013-11-07 08:40:49
【问题描述】:

当我运行 Windbg 并遇到断点时,它会打印触发它的断点的编号。当我使用条件断点时,我也想打印它。是否有一些变量保存触发的断点编号?

因为当我在断点条件下使用“.printf”时,只会打印我指定的内容(这很好),但我也想知道它是哪一个。

【问题讨论】:

  • 设置断点后,你能不能不列出它们bl然后重新进入断点然后.printf.echo断点的序号值?这将重新定义断点
  • .echo 什么?这就是我想知道的。 :)
  • 当你输入bl这将列出所有带有数字序数值和地址的断点,你可以设置断点然后列出它们然后重新定义它们并添加.echobp foo ".echo 'bp 1'".echo 'foo bp 42'
  • 我知道可以使用bl查看窗口中的列表。我想知道如何在条件断点中打印断点的编号。不是如何显示列表。
  • 但是一旦你列出了断点你就知道序号所以你可以重新定义断点并添加.echo命令来输出序号,据我所知没有命令输出断点编号,但您可以添加 .echo 命令是我的观点

标签: windbg breakpoints


【解决方案1】:

定义断点时,您可以指定ID value,然后您可以将.echo 作为命令字符串:

bp 42 myDLL!myClass::foo ".echo 'breakpoint 42 hit!!!';gc"

然后您将确定您的哪些断点被命中。

或者,您可以使用bl 列出当前断点,这将列出断点并显示序号(实际上是您在定义断点时未指定时分配的 ID)。

您可以使用此序号并重新定义断点和.echo 序号,方式与上述相同。

【讨论】:

  • 我建议将 ggc 交换,以防止调试器在跨过该断点时神秘地 F5'ing。
猜你喜欢
  • 1970-01-01
  • 2015-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多