1

我是使用 Windbg 的新手。我得到了我的应用程序的崩溃转储。使用 Windbg 我可以获得崩溃的调用堆栈,并发现 dynamic_cast 因指针而失败。由于指针已经损坏,dynamic_cast 失败。

现在我不确定这个指针是如何损坏的。它可能来自另一个线程。如何找出相同指针已损坏的其他线程的调用堆栈。

或者

使用损坏指针的其他线程的调用堆栈。所以我应该分析指针损坏的原因。

4

1 回答 1

1

您可以转储所有线程的调用堆栈:

~* kb

然后扫描调用堆栈以查找指针的地址,假设另一个线程正在尝试访问它,当我说扫描时,这意味着使用f3.

此外,如果您有很多工作线程,那么!uniqstack只会列出唯一的调用堆栈并列出具有该调用堆栈的线程 ID。请记住,当您想查看其他线程时,您需要通过调用来切换线程,这里~#s有更多关于语法的信息。

于 2013-05-22T08:10:20.413 回答