Cdb /windbg输出过大



我们正在使用cdb (winDBG的命令行版本)来解析cab。为了在文件中获得输出,我们使用-logo output来指定输出文件。对于某个出租车,我们得到的" cvregtommachine (x86)转换失败为0x7536"超过一百万次。基本上,我们得到了一个巨大的已解析代码日志,将近1GB,并且每行都用上面的字符串填充。
我们使用下面的cdb命令
cdb -z "abc。-G -logo "outputfile" -lines -c "。kframes 100; !分析- v; !加载msec.dll; !可利用的- v; vertarget lmv; q "
有人知道这里有什么问题吗?

您的cannot use -c and -G at the same time -c需要第一个break来读取初始
命令,如果需要运行代码,请使用g;在-c命令的末尾

也有很多次-c commands need to be provided first和被调试者需要
位于命令行

的末尾
cdb -c "<some cmd;someother cmd;g>" -z foo.cab

.load而不是!load应该用来加载第三方扩展

发出的字符串"CvReg.........."似乎与Flags member of SYMBOLINFO Struct中的SYMFLAG_NULLSYMFLAG_REGISTER有关。

一个示例试验没有穿过我的机器中的代码路径,所以可能需要损坏的DMP或更多关于DMP文件的信息来找到喷涌的原因

<<p> 创建转储/strong>
C:>dir /b *.cab
File Not Found
C:>cdb -c ".dump /ma /b foo.cab;q" calc | grep -i -E "dmp|dump|wr"
0:000> cdb: Reading initial command '.dump /ma /b foo.cab;q'
Creating C:DOCUME~1AdminLOCALS~1Tempfoo.cab.dmp - mini user dump
Dump successfully written
  Adding C:DOCUME~1AdminLOCALS~1Tempfoo.cab.dmp - added
Wrote foo.cab
C:>dir /b *.cab
foo.cab

**将dump加载为debuggee (cdb) debuggee (foo.cab)并查找**

C:>cdb cdb -z foo.cab
    0:000> s -u dbgeng l?39b000  "CvReg"
020341f8  0043 0076 0052 0065 0067 0054 006f 004d  C.v.R.e.g.T.o.M.
0:000> # *(*20341f8 dbgeng l?39b000
dbgeng!MachineInfo::CvRegToMachine+0xfe:
021bf8ae 68f8410302      push    offset dbgeng!`string' (020341f8)
0:000> # call*dbgeng!MachineInfo::CvRegToMachine dbgeng l?39b000
dbgeng!ImageInfo::CvRegToMachine+0x22:
021b62f2 e8b9940000      call    dbgeng!MachineInfo::CvRegToMachine (021bf7b0)
0:000> # call*CvRegToMachine dbgeng l?39b000
dbgeng!ImageInfo::CvRegToMachine+0x22:
021b62f2 e8b9940000      call    dbgeng!MachineInfo::CvRegToMachine (021bf7b0)
dbgeng!TypeInfoValueFromSymInfo+0x4b:
022541ab e82021f6ff      call    dbgeng!ImageInfo::CvRegToMachine (021b62d0)
dbgeng!TypedData::SetToSymbol+0x25f:
02285edf e8ec03f3ff      call    dbgeng!ImageInfo::CvRegToMachine (021b62d0)
dbgeng!TypedData::SetToSymbol+0x2da:
02285f5a e87103f3ff      call    dbgeng!ImageInfo::CvRegToMachine (021b62d0)
0:000> ln 0x21bf8ae

(021bf7b0)   dbgeng!MachineInfo::CvRegToMachine+0xfe   |  (021bf8d0)   dbgeng!Ma
chineInfo::GetContextState

在此函数上执行和执行将产生检查,其中SymbolInfo->Flags为
检查并确定上面的示例转储没有进入路径

相关内容

  • 没有找到相关文章

最新更新