设置_NT_SYMBOL_PATH(windbg)

这篇博客介绍了如何配置_NT_SYMBOL_PATH以利用Microsoft Symbol Server获取调试符号文件。内容包括在Windbg中设置符号路径的方法,以及使用symchk工具迭代查找System32目录下所有文件的符号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Use the Microsoft Symbol Server to obtain debug symbol files

//z 2011-09-04 16:52:44@is2120.CSDN 转载请注明出处
debug tools for windows,windbg

1. 在windbg中可以使用如下命令:

.sympath SRV*f:\localsymbols*http://msdl.microsoft.com/download/symbols

设置_NT_SYMBOL_PATH
F:\Symbol;symsrv*symsrv.dll*F:\Symbol*http://msdl.microsoft.com/download/symbols


2.如是临时使用:

Set _NT_SYMBOL_PATH = symsrv*symsrv.dll*f:\localsymbols*http://msdl.microsoft.com/download/symbols

3. 多个路径
fsymchk /r c:\windows\system32 /s SRV*c:\symbols\*http://msdl.microsoft.com/download/symbols:

//z 2011-09-04 16:52:44@is2120.CSDN 转载请注明出处

4. 迭代得到目录下的所有文件的symbol
symchk /r c:\windows\system32 /s SRV*c:\symbols\*http://msdl.microsoft.com/download/symbols

  • /r c:\windows\system32 finds all symbols for files in the System32 folder and any subfolders.
  • /s SRV*c:\symbols*http://msdl.microsoft.com/download/symbols specifies the symbol path to use for symbol resolution. In this case,c:\symbols is the local folder where the symbols will be copied from the symbol server.

//z 2011-09-04 16:52:44@is2120.CSDN 转载请注明出处


Pseudoregisters

Pseudoregister

Description

@ERR

Last error value; the same value returned by the GetLastError() API function

@TIB

Thread information block for the current thread; necessary because the debugger doesn't handle the "FS:0" format

@CLK

Undocumented clock register; usable only in the Watch window

@EAX, @EBX, @ECX, @EDX, @ESI, @EDI, @EIP, @ESP, @EBP, @EFL

Intel CPU registers

@CS, @DS, @ES, @SS, @FS, @GS

Intel CPU segment registers

@ST0, @ST1, @ST2, @ST3, @ST4, @ST5, @ST6, @ST7

Intel CPU floating-point registers


@ERR
 最后错误值; 和GetLastError() API 函数一致
 
@TIB
 当前线程信息; 在调试器无法处理”FS:0”格式的时候是必要的
 
@CLK
 未列入文档的寄存器; 只是在Watch窗口适用
 
@EAX, @EBX, @ECX, @EDX, @ESI, @EDI, @EIP, @ESP, @EBP, @EFL
 Intel CPU 寄存器
 
@CS, @DS, @ES, @SS, @FS, @GS
 Intel CPU 段寄存器
 
@ST0, @ST1, @ST2, @ST3, @ST4, @ST5, @ST6, @ST7
 Intel CPU 浮点寄存器
 
其中@TIB很有用,可以用在多线程调试的时候作为断点的条件变量.这样就可以只观察一个线程的执行情况.
另一个常用的@err,hr


(X64 Debugging With Pseudo Variables And Format Specifiers)
Pseudo Variable     Description
$handles     Number of handles to kernel objects
$vframe     Current stack frame address
$TID     Current thread identifier
$registername     Contents of specified register
$clk     Time in clock cycles
$user     Process and thread token information


Specifier     Description
D    Decimal
U    Unsigned decimal
O    Octal
X    Hexadecimal
F    Floating point
E    Scientific notation
C    Character
S    Character string
Su    Unicode string
s8    UTF-8 string
Hr    HRESULT or Win32 error code
wc    Windows class
wm    Windows message
!    Raw format
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值