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

'.symfix+' is not recognized on cmd terminal

我正在尝试按照this WinDBG tutorial, and at some point, it requires the Microsoft public symbol server进行设置。我运行命令:

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

其次是

.symfix+ C:\MySymbols

但我收到臭名昭著的错误消息

'.symfix+' is not recognized as an internal or external command, operable program or batch file.

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

如果您能帮助我了解问题所在以及如何解决,我将不胜感激。

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

                          

但是,某些 command-line 工具可以部分完成这项工作!可以查看完整的“WinDbg Command-Line 选项”文档 here. Also, there is the symchk tool coming with the "Windows Driver Kit (WDK)”。可以使用以下命令下载“Microsoft 的 public 符号”数据库:

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

P.S. 有用 common WinDbg commands

命令

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