19.windbg-.symfix、.srcPath、.srcnoisy、log文件(符号文件、源文件、log文件)

symfix

.symfix命令自动将符号路径设置来指向Microsoft 符号存储。

比如,我原来设置的symbol file path为:

那么使用了.symfix之后:

0:000> .symfix
No downstream store given, using C:\Program Files\Debugging Tools for Windows (x86)\sym

这时symbol file path为:

我们发现,系统强制把Microsoft 符号存储的路径覆盖了原有的路径,那么,要使用追加,请使用.symfix+,把原有的路径设回去再保存,再调用.symfix+

0:000> .symfix+
No downstream store given, using C:\Program Files\Debugging Tools for Windows (x86)\sym

 

这时symbol file path为:

我们注意到,每次都有提示

No downstream store given, using C:\Program Files\Debugging Tools for Windows (x86)\sym
这意思是我们没有指定下载符号的路径,默认使用调试器安装目录下的 sym 子目录,

那么怎么自己加目录呢,比如,我想把符号下载存储到

C:\MyLocalSymbols这个路径,我们可以这样使用它:把原有的路径设回去再保存,再调用.symfix+ C:\MyLocalSymbols

0:000> .symfix+ C:\MyLocalSymbols

后面不再提示什么No downstream....了

这时symbol file path为:

OK,现在这个.symfix应该掌握了,


.srcpath

类似于.sympath,设置源码路径

0:000> .srcpath
Source search path is: <empty>
0:000> .srcpath+ d:\windbg\
Source search path is: d:\windbg\
DBGENG:  Scan paths for partial path match:
DBGENG:    prefix 'd:\windbg\test1'
DBGENG:    suffix 'test1.cpp'
DBGENG:      match 'd:\windbg' against 'd:\windbg\test1': 14 (match '')
DBGENG:  Scan paths for partial path match:
DBGENG:    prefix 'd:\windbg'
DBGENG:    suffix 'test1\test1.cpp'
DBGENG:      match 'd:\windbg' against 'd:\windbg': -1 (match 'd:\windbg')
DBGENG:      check 'd:\windbg\test1\test1.cpp'
DBGENG:      found file 'd:\windbg\test1\test1.cpp'



windbg调试器如何知道为某个程序找到符号文件? 调试器需要两部分信息:符号路径的位置,它包括一组路径,以及存储在模块头部分于验证符号文件的信息.符号路径可以是一个本地文件夹、UNC共享连接,或者是在"符号服务器"一节中将要介绍的符号服务器路径。

符号路径的形式很简单,它包括一组由分号(;)分隔的文件夹,符号文件的名字是从映射头部的CV记录中提取出来的,如果没有CV记录,那么也可以根据二进制文件的名字来生成。调试器将通过一种启发式算法在符号路径中搜索符号文件,并将每个找到的符号文件与模块信息进行匹配。如果没有找到匹配的符号文件,调试器将默认使用在模块中导出的符号。


   

  

   

.srcnoisy 

.srcnoisy 命令控制源码文件加载的显示级别
0 禁止对额外信息的显示。1 显示源文件加载和卸载的进行情况。2 显示符号文件加载和卸载的进行情况。3 显示选项1和2的所有信息。
0:000> g
Breakpoint 3 hit
eax=00000002 ebx=7efde000 ecx=4f1e7d4c edx=6a521408 esi=001ef98c edi=001efa70
eip=012430ed esp=001ef98c ebp=001efa70 iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
test1!wmain+0x5d:
012430ed 8bf4            mov     esi,esp
DBGENG:  Scan paths for partial path match:
DBGENG:    prefix 'd:\windbg\test1'
DBGENG:    suffix 'test1.cpp'
DBGENG:  Scan paths for partial path match:
DBGENG:    prefix 'd:\windbg'
DBGENG:    suffix 'test1\test1.cpp'
DBGENG:  Scan paths for partial path match:
DBGENG:    prefix 'd:'
DBGENG:    suffix 'windbg\test1\test1.cpp'
DBGENG:  Scan all paths for:
DBGENG:    'd:\windbg\test1\test1.cpp'
DBGENG:  Scan all paths for:
DBGENG:    'windbg\test1\test1.cpp'
DBGENG:  Scan all paths for:
DBGENG:    'test1\test1.cpp'
DBGENG:  Scan all paths for:
DBGENG:    'test1.cpp'
DBGENG:  Check plain file:
DBGENG:    'd:\windbg\test1\test1.cpp' - found
最后found!

打开log

在Edit--Open/Close log File:

如果只输入名称,则默认在调试器windbg目录下生成,如果文件已存在,选了Append,则不会覆盖原有内容,否则会覆盖.

再次打开,点击Close Open Log File可以把Log关闭,当前Log只记录从"Opened log file XX"到"Closing open log file"的内容,

当然,Append勾选不会把以前的Log覆盖.

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值