我试图使用Microsoft的调试诊断工具(DebugDiag)来识别w3wp.exe/clr.dll中发生的应用程序事件日志错误,如thisanswer中所述.但是,当我尝试添加新规则时,出现错误对话框:Cannotconnecttoservice.FailedtostartDbgSVC.GetLastErrorreturns0x00000422如何才能成功添加规则? 最佳答案 此错误表明DebugDiagnosticService服务被禁用。修复:开始>运行>services.msc在出现的“服务”对话框中,在列表中找到“调试诊
一年多以前,我已经使用WinDbg和DebugDiag来查找我们在Java中使用的JNInativeDLL中的内存泄漏。现在我正在寻找线程句柄泄漏。我使用ProcessExplorer创建了一个内存转储,并尝试在DebugDiag中对其进行分析,但我得到的只是脚本错误:我也尝试过WinDbg,但它无法再附加到进程。我总是收到错误消息“dbghelp.dll的版本与调试器不匹配”:(“UnbekannterFehler”的意思是“未知错误”)我卸载了DebugDiag和WindowsSDK,然后下载了最新版本并安装了WindowsSDK8和DebugDiag1.2(x86)。问题保持不变
如何在内部应用程序中使用DebugDiag?我需要做什么(包括obj文件、程序集链接等) 最佳答案 Debugdiag分析需要符号(默认情况下,Microsoft公共(public)符号服务器已经配置了Debugdiag)。所有下载的微软公共(public)符号都将放在“c:\symcache”如果您有内部应用程序,并且有符号,那么您只需将PDB文件(仅)添加到符号路径:“c:\symcache”在调试的时候,如果是设置断点,那么还需要在相应的路径中添加符号。“c:\symcache”
对于.Net4.6.x,我严重依赖DebugDiag2每当生产应用程序出现高CPU问题、死锁等问题时,我都会使用该工具来捕获w3svc的转储,并打印出一份关于所有线程正在做什么的漂亮报告。他们可能正在等待第3方API、数据库等。我想迁移到asp.netcore,但是如果我有一个生产服务器w/100%CPU或像上面提到的问题,我找不到任何方法可以转储进程中的所有线程并查看它们堆栈跟踪。人们如何在没有这种可见性的情况下四处走动?我错过了什么吗?我正在寻找也适用于Linux的解决方案。 最佳答案 我会推荐IDA,它是一个调试器和反汇编器。