实例二
1、程序崩溃发生过程
这是一个对文件进行处理的模块,而处理模块在处理之前,需查询被处理的文件是否值得处理。这个任务执
行过程中发生了崩溃,问题就发生在查询模块。
2、提取dump文件
3、分析dump:
1)启动windbg,file–open crash dump 配置符号库,reload完成 。
2)使用命令 :.ecxr获得进程崩溃时寄存器的内容
[code]1 0:021> .ecxr (意指恢复崩溃时所有寄存器的内容,包括堆栈等)
2 eax=0532d414 ebx=00000fec ecx=000003fb edx=00000000 esi=0532c428 edi=00000000
3 eip=750f53ea esp=0490f22c ebp=0490f234 iopl=0 nv up ei pl nz na pe nc
4 cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010206
5 msvcr80!memmove+0x5a:
6 750f53ea f3a5 rep movs dword ptr es:[edi],dword ptr [esi] es:002b:00000000=???????? ds:002b:0532c428=00000000
[/code]
3)使用命令:k 显示堆栈
[code]01 0:021> k (.ecxr不能直接显示堆栈,需使用k显示堆栈)
02 *** Stack trace for last set context - .thread/.cxr resets it
03 ChildEBP RetAddr
04 WARNING: Stack unwind information not available. Following frames may be wrong.
05 0490f234 03ba4806 msvcr80!memmove+0x5a(kxewfsys调用memmove,memmove是个字符串操作函数,能把字符串的一部分复制到另一部分,这里出问题,可能是复制时传递的指针有问题,或者字符串的大小有问题)
06 0490f25c 03ba2547 kxewfsys!__ovfl_get+0xa6 (调用memmove之前内部的一些处理)
07 0490f27c 03ba4a74 kxewfsys!__bt_cmp+0x77
08 0490f2a8 03ba2679 kxewfsys!__bt_search+0x74
09 0490f2c4 03ba1409 kxewfsys!__bt_get+0x49
10 0490f2d8 03ba7448 kxewfsys!IKBDBImpl::Get+0x19
11 0490f2f8 03ba750d kxewfsys!CFdbFileInfo::Search+0x28 [e:\eingsoft_euba\build\build_src\kice\kice_kxewhite\src\kxewfssys\fdbfileinfo.cpp @ 483]
12 0490f338 03ba9c63 kxewfsys!CFdbFileInfo::QueryFileInfo+0x4d [e:\eingsoft_euba\build\build_src\kice\kice_kxewhite\src\kxewfssys\fdbfileinfo.cpp @ 546]
13 0490f380 028210d1 kxewfsys!CFdbManager::QueryFileInfo+0xa3 [e:\eingsoft_euba\build\build_src\kice\kice_kxewhite\src\kxewfssys\fdbmanager.cpp @ 370] (kxewfsys 是处理查询模块)
14 *** ERROR: Symbol file could not be found. Defaulted to export symbols for kspfeng.dll
15 0490f390 03b1323c kxewhite!kxe_white_query_file_info+0x21 [e:\eingsoft_euba\build\build_src\kice\kice_kxewhite\src\kxewfssdk\kxewfs.cpp @ 103] (将文件提交进行查询.)
16 0490f45c 03b13442 kspfeng!KSEGetAddonEntries+0x21fbc (kspfeng.dll是文件处理模块用到的公共功能的封装文件)
17 *** ERROR: Symbol file could not be found. Defaulted to export symbols for ksecore.dll
18 0490f498 03abcaa4 kspfeng!KSEGetAddonEntries+0x221c2
19 0490f4c8 03b07fd5 ksecore+0x1caa4
20 0490f52c 03b1c52b kspfeng!KSEGetAddonEntries+0x16d55
21 0490f860 5019dd7c kspfeng!KSEGetAddonEntries+0x2b2ab
22 0490f864 01c95695 0x5019dd7c
23 0490f868 1a77217c 0x1c95695
24 0490f86c 01c95693 0x1a77217c
25 0490f870 1a7982dc 0x1c95693
26 0490f874 01c95693 0x1a7982dc
[/code]
4、总结崩溃原因
查询模块,对文件路径的处理存在bug。
实例1
这个系列的文章是vivilisa写的,但是前几天去他的博客看貌似没有这几篇文章了,原来把这系列文章存在
了电脑里,现在拿出来跟大家分享,不知道vivilisa是不是同意。暂时先发表了再说,不成的话就了。感觉他写
的这几篇调试文章很好,称赞下。
1、崩溃发生过程 程序执行过程中崩溃,弹出mssagebox,提示R6034错误。查看r6034错误:表示运行库的
manifest设置不正确。