c++ 如何使用客户端调用堆栈中的地址从PDB中检索文件/函数/行号?

zc0qhyus  于 2023-03-25  发布在  其他
关注(0)|答案(1)|浏览(203)

我在我的C++游戏中添加了一些崩溃报告,使用的是Windows的StackWalker library。我假设当客户端生成调用堆栈时,它将打印地址而不是文件/函数名等。
我怎样才能把这些地址转换成人类可读的东西呢?我将保存PDB文件,但我不知道如何检查它们。

z8dt9xmd

z8dt9xmd1#

“我假设当客户端生成调用堆栈时,它将打印地址而不是文件/函数名”
你为什么这么想?你链接的页面有一个标题为“加载模块和符号”的部分。如果你告诉这个库从哪里加载它们,它似乎会使用你的符号。是不是这样?
或者,您可以输出一个process dump,Visual Studio或windbg将知道如何将其与符号文件结合使用。
但是,如果库不能满足您的要求,并且您仍然希望通过自定义代码与符号文件进行交互,则可以通过this mess来挖掘符号。

相关问题