首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从正在运行的C# mono应用程序生成内存堆转储?

如何从正在运行的C# mono应用程序生成内存堆转储?
EN

Stack Overflow用户
提问于 2017-02-15 00:09:44
回答 1查看 1K关注 0票数 1

我有一个在启用了--debugMono JIT compiler version 3.2.8 (Debian 3.2.8+dfsg-4ubuntu1.1)下运行的单声道应用程序。在静默一段时间后,我得到了静默的意外内存使用。

我知道有HeapShot,但它甚至在问题出现之前就产生了超过4 4GB的输出。此外,在加载转储时内存耗尽之前,UI工具不能加载超过17个包含的快照。

这就是为什么我正在寻找一种方法,当内存使用量变大时,为我的应用程序生成一个单独的堆转储。有什么办法吗?

另一种选择是获得更好的工具,以便从生成的巨大HeapShot转储中加载单个快照。

任何关于如何找到内存泄漏的提示也会很有帮助。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-09-17 12:35:15

在第一个终端中运行,在发送命令heapshot之前不会产生转储

代码语言:javascript
复制
mono --debug --profile=log:heapshot,heapshot=ondemand,time=fast,port=7103,output=%p.mlpd MyApp.exe

获取heapshot ondemand在第二个终端上运行发送命令"heapshot“

代码语言:javascript
复制
echo -n "heapshot\n" | nc localhost 7103

你需要从你的发行版安装netcat包

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

https://stackoverflow.com/questions/42230959

复制
相关文章

相似问题

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