如何在Windbg的析构函数中设置断点

How to set breakpoint in destructor in Windbg?

本文关键字:设置 断点 析构函数 Windbg      更新时间:2023-10-16

我有一个类型A,它大致看起来像这样:

class A {
public:
  A() { /*stuff*/ }
  virtual ~A() { /*stuff* }
};

我想做的是在A的析构函数中设置一个断点。

迄今为止我所做的尝试都没有成功:

bu myModule!A::~A()
bu myModule!A::~A
bu @@(myModule!A::~A())
bu @@(myModule!A::~A)

这些尝试给了我Couldn't resolve error at ...Type conflict error at ...

在析构函数中设置断点的正确语法是什么?在这种情况下,是否有一种方法可以增加Windbg给出的错误消息的篇幅?

您需要为析构函数检查正确的符号,因此使用x我们可以确定:

x myModule!A::~*

应该输出如下内容:

12345678       myModule!A::~A (void)

或类似的

则可以设置断点:

bp 12345678

bu myModule!A::~A (void)

要回答你的第二个问题,如果你启动WinDbg标志为-v或按ctrl + alt + v则输出详细的输出请参阅此链接和此链接