我正在尝试分析MS BizTalk服务的崩溃转储,它不断消耗100%的CPU(我认为这是因为我们的代码:))。我有几个转储和最繁忙的线程的堆栈跟踪看起来相似 - 唯一的问题是,堆栈的顶部似乎缺少符号。它看起来像这样:
0x642`810b2fd0
所以,问题是 - 如何从这个地址找出模块/功能? (或者至少是模块,以便我知道缺少什么符号文件)。
答案 0 :(得分:1)
lm
转储模块列表。在您的情况下,WinDbg找不到任何占用此地址的模块 - 否则它将打印+。一些库动态生成代码,在这种情况下,函数体将放置在堆中,并且不会有任何符号甚至模块与之关联。我知道MCF在某些时候这样做了。
我建议你尝试分析堆栈顶部有符号的帧,并试着找出它们可能正在做什么。
答案 1 :(得分:0)
希望我能提供更多帮助,但我唯一可以建议的是阅读this cheat sheet的WinDbg命令。有一个命令wt
,它有一个params列表,可以帮助获取有关该呼叫站点的模块信息。
如果这对您有用,请告诉我。