如何查看正在运行的进程/线程的调用堆栈?

Der*_*ler 15 windows troubleshooting

有人让我获取一个正在运行的进程的调用堆栈堆栈跟踪,以便他可以为我分析。

我怎样才能得到这些信息?

Der*_*ler 35

  1. 获取进程资源管理器

  2. 文件菜单启用显示所有进程的详细信息

    在此处输入图片说明

  3. 在主窗格中,选择您感兴趣的进程:

    在此处输入图片说明

  4. 打开所选进程的上下文菜单(右键单击),然后单击Properties

    在此处输入图片说明

  5. Threads选项卡上,您将能够看到该进程内正在运行的线程的列表:

    在此处输入图片说明

  6. 选择您感兴趣的线程,然后单击堆栈按钮:

    在此处输入图片说明

  7. Process Explorer 现在将显示所选线程的当前调用堆栈:

    在此处输入图片说明

符号

如果您的故障排除需要您获得更多详细信息,那么将调试符号加载到 Process Explorer 中通常会很有帮助。这是如何:

  1. 如果您尚未安装 Windows 调试器,则必须先安装Windows 调试工具

  2. 在 Process Explorer 中,从Options菜单中打开Configure Symbols...

    在此处输入图片说明

  3. 如果您安装了调试工具(或其他 Windows 调试器),Process Explorer 将自动找到该dbghelp.dll文件。否则,请在此处设置正确的路径。

    在此处输入图片说明

    符号路径应该是这个样子:

    SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
    
    Run Code Online (Sandbox Code Playgroud)

    您唯一需要调整的部分是C:\Symbols. 这是调试符号将被缓存的位置。