10

对于 .Net 4.6.x,我非常依赖DebugDiag 2

任何时候生产应用程序出现高 CPU 问题、死锁等问题,我都会使用该工具来捕获 w3svc 的转储,它会打印出一份关于所有线程正在做什么的漂亮报告。他们可能正在等待 3rd 方 API、数据库等。

我想迁移到 asp.net 核心,但如果我有一个 100% CPU 的生产服务器或上面提到的问题,我找不到任何方法可以转储进程中的所有线程并查看它们的堆栈跟踪。

人们如何在没有这种可见性的情况下四处走动?我错过了什么吗?我正在寻找同样适用于 Linux 的解决方案。

4

1 回答 1

0

我会推荐 IDA,它是一个调试器和反汇编器。它在 Linux 上运行,可用于转储所有线程并执行堆栈跟踪。 这是它的链接。或者微软现在允许您直接从 Visual Code Studio 调试并将线程转储到那里。有多个关于这方面的教程,快速的 Google 搜索可以提供帮助或查看 Microsoft 帮助中心。看看这里。

于 2019-01-09T03:39:17.167 回答