有人让我买一个调用堆栈或者堆栈跟踪正在运行的进程,以便他能帮我分析。
我怎样才能获得该信息?
答案1
得到进程探索器。
使能够显示所有进程的详细信息来自文件菜单:
在主窗格中,选择您感兴趣的流程:
打开所选流程的上下文菜单(右键单击),然后单击特性:
在线程选项卡中,您将能够看到该进程内正在运行的线程列表:
选择您感兴趣的主题,然后单击堆按钮:
Process Explorer 现在将显示所选线程的当前调用堆栈:
符号
如果你的故障排除需要你获得更多细节,那么加载调试通常非常有帮助符号进入 Process Explorer。操作如下:
如果你还没有安装 Windows 调试器,你需要安装Windows 调试工具第一的。
在 Process Explorer 中,打开配置符号...来自选项菜单:
如果您安装了调试工具(或其他 Windows 调试器),Process Explorer 将自动找到该
dbghelp.dll
文件。否则,请在此处设置正确的路径。这符号路径看起来应该是这样的:
SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
您唯一需要调整的部分是
C:\Symbols
。这是调试符号将被缓存的位置。
答案2
如果您需要 clr 进程堆栈,您可以使用 ProcInsp(我是它的开发人员,该工具可免费使用)。
- 安装进程检查
- 找到您感兴趣的流程并单击它
- 单击线程(请注意,ProcInsp 将应用程序的入口点显示为线程的名称 - 它跳过 .net 基础架构的所有框架)
- 显示带有入口点突出显示的堆栈跟踪