从内存地址到源代码中的函数
Getting from memory address to function in source
使用Process Explorer工具,我知道我的进程挂在一个特殊的函数处myexe.exe + 0 x1b5773
如果我有可用的pdb,是否有一种方法可以得到确切的函数?或者必须有一个.map文件来存储这些信息?
我知道我可以用调试器连接到exe,但如果问题发生在非开发人员机器上,这现在总是一个选项。
进程资源管理器
这可以在进程资源管理器本身Options|Configure symbols...
下完成:
- 选择
dbghelp.dll
-
设置符号路径
SRV*c:debugsymbols*http://msdl.microsoft.com/download/symbols;c:mysymbols
但这可能对你的客户不太方便。
一个更安全,通常更用户友好的方式:
- 右键单击进程
- 选择
Create dump | Create Minidump...
- 选择文件名
- 让客户将转储文件发送给您,以便您进行分析。
使用转储,您不会做任何错误的事情,甚至在几周后,它仍然可以被分析,如果Process Explorer只是暂时显示瞬时数据,您就不能。
WinDbg
你可以在WinDbg中这样做:
- 打开可执行文件,但是作为转储文件
-
.symfix
-
.sympath+ <your PDB path>
-
.reload
-
ln myexe.exe+0x1b5773
相关文章:
- 了解模板函数(源代码为 .h)与其编译的 .lib 的关系
- 当我尝试在函数内声明一个函数时,它不起作用?有什么建议吗?*源代码如下*
- v8 源代码中 ArrayMap 函数的回调 fn 参数是什么?
- 如何在不可修改的源代码中使用 DLL 函数?
- Caffe 源代码中层函数标头中指针运算符的含义
- 调用格林德 没有仅适用于几个函数的源代码
- 在源代码中,调用函数时不带 ().文档给出了 1 个必需的参数
- 为什么将函数体放置在单独的源代码文件而不是标题中的C/C 中
- 哪一个更好?使用C 代码中的System()函数或使用源代码
- 加载图像函数在qt快速源代码
- GDB 7.5 (OS X):无法从库函数访问源代码
- GDB - 列出当前函数的源代码,而不键入其名称
- 从源代码项目中提取所有函数的工具
- C++11:将lambda转换为源代码中的函数对象
- 如何在源代码中查找所有非 Unicode 函数调用
- 如何提取与OPENCV中某个函数相关的源代码
- Python:将用户定义的函数作为输入,同时保持源代码不可访问
- 源代码在c ++中调用错误的模板类函数,如何修复
- 从 Java 中的 c/c++ 源代码中提取函数名称
- 如何查看用C/C++编写的函数的源代码