windbg调试

Unable to verify checksum for CreateEMF.exe

别人的问答,先抄下,再尝试{关于第一个问题,那个提示是说EXE文件的PE头结构(参考《软件调试》P756)中缺少校验和,因此无法验证这个程序文件的完整性。 

使用VC工具包中的editbin工具可以为程序文件增加校验和,比如: 

C:\dig\dbg\author\code\bin\Debug>editbin ftappvc8.exe /release 
Microsoft (R) COFF/PE Editor Version 8.00.50727.42 
Copyright (C) Microsoft Corporation. All rights reserved. 

执行这个命令后,再调试ftappvc8.exe 时,就不会有Unable to verify checksum 这样的错误信息,通过lmv命令也可以看到新加入的校验和: 
0:000> lmv m ftappvc* 
start end module name 
00400000 0042a000 FtAppVC8 (no symbols) 
Loaded symbol image file: C:\dig\dbg\author\code\bin\Debug\FtAppVC8.exe 
Image path: FtAppVC8.exe 
Image name: FtAppVC8.exe 
Timestamp: Sat Feb 03 05:16:35 2007 (45C3F083) 
CheckSum: 0001FDBF 
ImageSize: 0002A000 
Translations: 0000.04b0 0000.04e0 0409.04b0 0409.04e0 
不过没有校验和,通常不会影响调试,也就是说这个警告信息大多时候是可以安全的忽略的。 
对于第二个问题,我推测你是使用VC6或者更老的编译器构建程序的,对于VC6,它默认会将类型符号放在VC60.PDB文件中,而WinDBG调试器并不知道到VC60.PDB文件中寻找类型符号,因此它还是提示上面的错误。解决的方法是在链接选项中将VC60.PDB中的类型符号集成到.pdb中,详情请阅读《软件调试》25章的25.7.1节,772页。}

.pdb文件(基本都在debug目录下才有),不知道如果只生产dll的会不会有。  【.pdb文件对应symbols。 同时dll要与symbols表要相对应】

posted on 2012-12-20 14:09  wolflion  阅读(1915)  评论(0编辑  收藏  举报

导航