在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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...