Linux 环境.Net程序堆栈查询

bash 复制代码
# 安装 
dotnet tool install --global dotnet-dump

# 收集信息, 产生 core_XXX 文件
dotnet-dump collect -p pid

# 分析 core_XXX 文件
dotnet dump analyze core_XXX

# 列出 大于 XXX 字节的 对象
dumpheap -stat -min XXX

# 查看对象具体信息
dumpobj address_XXX

# 查看对应引用情况
gcroot address_XXX

# 输出类似这种
Thread 1665c2:
    7ef12fffeb50 7f321c5c5574 System.Net.Sockets.SocketAsyncEngine.EventLoop()
        rbx:
          -> 7ef20d68e218     System.Net.Sockets.SocketAsyncEngine 

# 查看线程信息
threads

# 输出类似这种
*0 0x1665AD (1467821)
 1 0x1665AF (1467823)
 2 0x1665B1 (1467825)
 3 0x1665B2 (1467826)
 4 0x1665B3 (1467827)
 5 0x1665B4 (1467828)
 6 0x1665B7 (1467831)
 7 0x1665B8 (1467832)
 8 0x1665BA (1467834)
 9 0x1665C2 (1467842)
 10 0x1665C3 (1467843)
 11 0x1665C4 (1467844)
 12 0x1665C5 (1467845)
 13 0x1665C6 (1467846)

# 查看特定线程堆栈信息(这里查看地址 1665c2,对应 9号线程)
setthread 9
clrstack

参考

dotnet-dump 诊断工具 - .NET CLI - .NET | Microsoft Learn

相关推荐
RisunJan13 分钟前
Linux命令-ltrace(用来跟踪进程调用库函数的情况)
linux·运维·服务器
阿乐艾官16 分钟前
【 LVM 创建逻辑卷】
linux
予枫的编程笔记25 分钟前
【Linux高级篇】搞定文件句柄+TIME_WAIT,Linux内核初步调优实操指南
linux·linux运维·ulimit·time_wait·sysctl.conf·内核调优·服务器优化
c***032326 分钟前
linux centos8 安装redis 卸载redis
linux·运维·redis
DeeplyMind29 分钟前
第6章 Docker镜像基础操作
运维·docker·容器
柏木乃一1 小时前
Linux进程信号(2):信号产生part2
linux·运维·服务器·c++·信号处理·信号·异常
马丁的代码日记1 小时前
Docker 无法拉取镜像的解决方案
运维·docker·容器
是小王吖!1 小时前
容器技术 - docker
运维·docker·容器
FJW0208142 小时前
《Nginx 高级应用:变量、Rewrite、反向代理与 OpenResty 扩展》(3)
运维·nginx·openresty
小义_2 小时前
【RH134知识点问答题】第13章 运行容器
linux·云原生