首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClrMd执行"~*k“使用clr!DllUnregisterServerInternal返回堆栈跟踪,而不是正确的值。

ClrMd执行"~*k“使用clr!DllUnregisterServerInternal返回堆栈跟踪,而不是正确的值。
EN

Stack Overflow用户
提问于 2020-05-21 01:17:06
回答 1查看 69关注 0票数 0

当我通过ClrMd执行"~*k“命令时,它使用clr!DllUnregisterServerInternal返回堆栈跟踪,而不是正确的值。看上去符号没有被装载。如果我在WinDBG中直接执行"~*k“命令,一切看起来都很好。

代码语言:javascript
复制
  this.DataTarget = DataTarget.LoadCrashDump(pathToMemoryDump, CrashDumpReader.DbgEng);
  this.DataTarget.SymbolLocator.SymbolCache = @"C:\symbols";
  this.DataTarget.EnumerateModules().ToList().ForEach((m) =>
            {
                this.DataTarget.SymbolLocator.FindBinary(m);
                this.DataTarget.SymbolLocator.FindPdb(m);


            });
  this.ClrRuntime = DataTarget.ClrVersions[0].CreateRuntime();

然后,我使用Execute方法对加载的内存转储执行查询:

代码语言:javascript
复制
(IDebugControl)client.Execute(DEBUG_OUTCTL.ALL_CLIENTS, cmd, DEBUG_EXECUTE.DEFAULT);

有人有什么建议吗?我的意图是为本机线程获得正确的堆栈跟踪。

EN

回答 1

Stack Overflow用户

发布于 2022-03-05 18:47:37

设置您的符号路径

代码语言:javascript
复制
var symbols = DataTarget.DebuggerInterface as IDebugSymbols;
symbols.SetSymbolPath("http://msdl.microsoft.com/download/symbols");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61925576

复制
相关文章

相似问题

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