微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在cmd终端上无法识别“ .symfix +”

如何解决在cmd终端上无法识别“ .symfix +”

我正在尝试遵循this WinDBG tutorial,在某个时候,它需要设置Microsoft public symbol server。我运行了命令:

set _NT_SYMBOL_PATH=srv*DownstreamStore*https://msdl.microsoft.com/download/symbols

之后

.symfix+ C:\MySymbols

但是我得到了臭名昭著的错误消息

'。symfix +'无法识别为内部或外部命令,可操作程序或批处理文件

运行命令systeminfo | findstr /B /C:"OS Name" /C:"OS Version"的环境是:

  • 操作系统名称:Microsoft Windows 10 Home
  • 操作系统版本:10.0.19041 N / A Build 19041

如果您能帮助我知道问题出在哪里以及如何解决,我将不胜感激。

解决方法

命令

set _NT_SYMBOL_PATH=...

设置一个环境变量,该变量试图告诉所有调试程序将符号下载到何处。这会影响WinDbg,Visual Studio,Process Explorer等。

命令

.symfix

是WinDbg特有的,与上述等效。不必同时设置两者。

请注意,您不应输入此部分

srv*DownstreamStore*https://msdl.microsoft.com/download/symbols

从字面上看。您应将希望将下载的符号存储在硬盘上的位置替换DownstreamStore部分。因此,在您的情况下,应为C:\MySymbols

命令.symfix仅将DownstreamStore作为参数,并将srv*放在该参数之前,并将*https://msdl.microsoft.com/download/symbols放在该参数之后。所以使用

.symfix C:\MySymbols

等同于

.sympath srv*C:\MySymbols*https://msdl.microsoft.com/download/symbols

但更容易键入。

这些命令(+.sympath+)中的.symfix+追加另一条符号路径,前提是您之前已经设置过。 >

set _NT_SYMBOL_PATH.symfix.sympath都不会实际下载符号。这些符号将按需下载。附加到用于下载符号的进程时,请使用ld*; reload /f

或者,正如您自己提到的那样,使用命令行工具symchk

,

如上面的注释中所述,.symfix命令是WinDbg命令,需要在软件的命令行中输入,而不是Windows终端cmd!

           

但是,某些命令行工具可以部分完成这项工作!完整的“ WinDbg命令行选项”文档可参见here。此外,还有symchk tool和“ Windows Driver Kit (WDK)”。可以使用以下命令下载“ Microsoft的公共符号”数据库:

symchk "path\to\binary" /s srv*DownstreamStore*https://msdl.microsoft.com/download/symbols

PS (有用)common WinDbg commands

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。