的确不总是能看到如此完美的堆栈回溯,这也是我把它记下来的原因。以下是一些可能的原因:
1,k命令的完整语法是:
[~Thread] k[b|p|P|v] [n] [f] [L] [FrameCount]
注意最后一个参数是可选的FrameCount,也就是要现实的栈帧数,缺省值为20(0x14)。因此如果你没有指定一个较大的值,那么WinDbg只显示20个,这有可能不会跨边界。
2,要在内核态调试时看到用户态的栈回溯,需具备如下条件。
WinDbg必须可找到对应的EXE文件和它的PDB文件。这需要把这些文件的路径设置到符号搜索路径中。