cdb / windbg输出太大了

时间:2014-05-26 11:58:47

标签: windbg windows-error-reporting

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

1 个答案:

答案 0 :(得分:1)

cannot use -c and -G at the same time -c需要第一次休息来阅读初始
如果你需要运行代码使用g命令并采取行动;在-c命令的末尾

也很多次-c commands need to be provided first和debugee需要 在命令行的末尾

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

.load不应使用!load来加载第三方扩展程序

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

示例试验未在我的机器中穿过该代码路径,因此可能需要损坏的dmp或有关dmp文件的更多信息才能找到喷出的原因

创建转储

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~1\Admin\LOCALS~1\Temp\foo.cab.dmp - mini user dump
Dump successfully written
  Adding C:\DOCUME~1\Admin\LOCALS~1\Temp\foo.cab.dmp - added
Wrote foo.cab

C:\>dir /b *.cab
foo.cab

**装载转储作为debugees(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-&gt;标志为
的检查 检查并确定我的上面的示例转储没有进入路径