本文主要是介绍Linux 环境.Net程序堆栈查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
# 安装
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
这篇关于Linux 环境.Net程序堆栈查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!