.Net Core DebugDiag 等效
Posted
技术标签:
【中文标题】.Net Core DebugDiag 等效【英文标题】:.Net Core DebugDiag Equivalent 【发布时间】:2018-03-05 17:43:29 【问题描述】:对于.Net 4.6.x,我非常依赖DebugDiag 2
任何时候生产应用程序出现高 CPU 问题、死锁等问题,我都会使用该工具来捕获 w3svc 的转储,它会打印出一份关于所有线程正在做什么的漂亮报告。他们可能正在等待第 3 方 API、数据库等。
我想迁移到 asp.net 核心,但如果我有一个 100% CPU 的生产服务器或上述问题,我找不到任何方法可以转储进程中的所有线程并查看它们的堆栈跟踪。
人们在没有这种可见性的情况下如何四处走动?我错过了什么吗?我正在寻找同样适用于 Linux 的解决方案。
【问题讨论】:
ProcDump 怎么样?它可以转储 .net 核心应用程序创建完整的内存转储 @PawełŁukasik 我不认为它可以在 linux 上运行 不,它没有。但是在您的问题中,它在哪里说明了有关 linux 的内容? @PawełŁukasik 好点。我会进行编辑。当我想到 .net 核心生产时,出于某种原因,我想到了 linux。 DebugDiag提供的分析可以手动进行。因此,在 Microsoft 为您创造某些东西之前,您始终可以自助。就我个人而言,我不认为 DebugDiag 以最有意义的方式分析转储(所有自动化工具都有这样的限制)。 【参考方案1】:我会推荐 IDA,它是一个调试器和反汇编器。它在 Linux 上运行,可用于转储所有线程并执行堆栈跟踪。 Here is a link to it. 或者微软现在允许您直接从 Visual Code Studio 调试并将线程转储到那里。有多个关于这方面的教程,快速的 Google 搜索可以提供帮助或查看 Microsoft 帮助中心。看看here.
【讨论】:
这个问题要求相当于 DebugDiag ... DebugDiag 能够只指向一个转储文件,它会生成一个突出显示问题的报告,它会输出一个简单的线程列表堆栈跟踪。我尝试了 IDA 评估版,但这并不等同 - 它似乎是像 WinDbg 这样的低级实用程序,这不是这个问题要寻找的。span>以上是关于.Net Core DebugDiag 等效的主要内容,如果未能解决你的问题,请参考以下文章
等效于 ASP.NET Core MVC 中的“@section”?
.net Core web api 2(不是 mvc)的 HttpResponseException/IHttpAction 响应的等效项