首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编写dotnet转储分析命令的脚本?

如何编写dotnet转储分析命令的脚本?
EN

Stack Overflow用户
提问于 2022-04-08 22:16:07
回答 2查看 238关注 0票数 1

在调试windows转储时,我经常使用cdb脚本。这样的脚本加载转储,完成所有必要的准备工作(比如设置符号和加载sosex),然后:

  1. 打开日志文件
  2. 运行所需的命令。
  3. 关闭日志文件。

例如:

代码语言:javascript
复制
...
.imgscan /l
.load e:\utils\sosex\64\sosex.dll
!lhi
.logopen "D:\tmp\dumpheap-stat.txt"
!dumpheap -stat
.logclose

现在使用linux转储,我想遵循相同的方法,即-编写脚本并将结果转储到文件中。有可能吗?

EN

回答 2

Stack Overflow用户

发布于 2022-04-11 13:36:01

我使用这些命令运行dotnet-dump analyze的预定义命令,并将输出保存到文本文件中:

代码语言:javascript
复制
/tools/dotnet-dump collect -p 1 --type Full -o $dumpfile
/tools/dotnet-dump analyze $dumpfile < /tools/dumpcommands > $dumpfile.txt

将所需的命令放入dumpcommands文件中,每行一个sos命令。最后一个应该是exit

代码语言:javascript
复制
clrstack -all
clrthreads
syncblk
dumpheap -stat
exit

忽略绝对路径。我必须在码头集装箱内运行

票数 2
EN

Stack Overflow用户

发布于 2022-04-11 17:06:43

我对dotnet dump analyze有一个问题--由于某种原因,gcroot不能工作--它只是永远挂在我们的10 it转储上。

然而,我看到苔丝·费兰德斯正在使用lldb,我尝试了一下,它非常好。这是我的工作:

  1. 安装lldb
  2. 安装dotnet-符号
  3. 运行dotnet symbol --host-only TheCoreDumpFilePath

最后一个命令下载相关的dotnet可执行文件。接下来,我们可以调试:

  1. lldb -c TheCoreDumpFilePath dotnet

现在,lldb可以从文件或命令行中运行命令。这使我们有能力编写它。现在我明白了,dotnet dump analyze也可以编写脚本,如相应的答案所示。

我希望我们可以利用lldb Python,尽管目前我还不知道如何像我的另一个调用自定义命令,所以在这里提出疑问- 如何通过lldb python运行sos扩展命令?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71803641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档