Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

C/C++本地代码调试

帖子发起人: 兰陵   发起时间: 2009-10-28 10:26 上午   回复: 2

Print Search
帖子排序:    
   2009-10-28, 10:26 上午
xszhou 离线,最后访问时间: 2009/10/28 10:13:58 兰陵

发帖数前500位
男
注册: 2008-07-06
发 贴: 2
ExitProcess出了问题,各位帮忙看看
Reply Quote
ntdll!DbgBreakPoint:
7c92120e cc int 3
0:000> g
ModLoad: 5cc30000 5cc56000 C:\WINDOWS\system32\ShimEng.dll
ModLoad: 76300000 7631d000 C:\WINDOWS\system32\IMM32.DLL
ModLoad: 62c20000 62c29000 C:\WINDOWS\system32\LPK.DLL
ModLoad: 73fa0000 7400b000 C:\WINDOWS\system32\USP10.dll
ModLoad: 61be0000 61bed000 C:\WINDOWS\system32\MFC42LOC.DLL
ModLoad: 719c0000 719fe000 C:\WINDOWS\System32\mswsock.dll
ModLoad: 76ef0000 76f17000 C:\WINDOWS\system32\DNSAPI.dll
ModLoad: 76f80000 76f88000 C:\WINDOWS\System32\winrnr.dll
ModLoad: 76f30000 76f5c000 C:\WINDOWS\system32\WLDAP32.dll
ModLoad: 74cc0000 74cde000 C:\WINDOWS\system32\wshbth.dll
ModLoad: 76060000 761b6000 C:\WINDOWS\system32\SETUPAPI.dll
ModLoad: 76f90000 76f96000 C:\WINDOWS\system32\rasadhlp.dll
ModLoad: 5adc0000 5adf7000 C:\WINDOWS\SYSTEM32\uxtheme.dll
ModLoad: 74680000 746cc000 C:\WINDOWS\system32\MSCTF.dll
ModLoad: 77bd0000 77bd8000 C:\WINDOWS\system32\version.dll
ModLoad: 76d70000 76d92000 C:\WINDOWS\system32\apphelp.dll
ModLoad: 73640000 7366e000 C:\WINDOWS\system32\msctfime.ime
ModLoad: 76fa0000 7701f000 C:\WINDOWS\system32\CLBCATQ.DLL
ModLoad: 77020000 770ba000 C:\WINDOWS\system32\COMRes.dll
ModLoad: 77bd0000 77bd8000 C:\WINDOWS\system32\VERSION.dll
ModLoad: 4dd10000 4dd93000 C:\Program Files\Common Files\system\ado\msado15.dll
ModLoad: 75b50000 75b75000 C:\WINDOWS\system32\MSDART.DLL
ModLoad: 76320000 76367000 C:\WINDOWS\system32\comdlg32.dll
ModLoad: 7d590000 7dd84000 C:\WINDOWS\system32\SHELL32.dll
ModLoad: 77f40000 77fb6000 C:\WINDOWS\system32\SHLWAPI.dll
ModLoad: 77180000 77283000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll
ModLoad: 01310000 01859000 C:\WINDOWS\system32\xpsp2res.dll
HEAP[PMMis.exe]: Invalid Address specified to RtlFreeHeap( 00030000, 000348EC )
(ec4.9ec): Break instruction exception - code 80000003 (first chance)
eax=000348e4 ebx=000348e4 ecx=7c93e544 edx=0013f71e esi=00030000 edi=000348e4
eip=7c92120e esp=0013f928 ebp=0013f92c iopl=0 nv up ei pl nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202
ntdll!DbgBreakPoint:
7c92120e cc int 3
0:000> kb
ChildEBP RetAddr Args to Child
WARNING: Stack unwind information not available. Following frames may be wrong.
0013f92c 7c98e5ce 000348e4 00030000 000348ec ntdll!DbgBreakPoint
0013f940 7c98f7b6 00030000 000348e4 7c98f96c ntdll!RtlpNtMakeTemporaryKey+0x6b72
0013f9b4 7c96bc9c 00030000 50000061 000348ec ntdll!RtlpNtMakeTemporaryKey+0x7d5a
0013fa9c 7c946fe3 00030000 40000060 000348ec ntdll!LdrAlternateResourcesEnabled+0x33bd
0013fb6c 77bfc2de 00030000 00000000 000348ec ntdll!RtlOemStringToUnicodeString+0xee
0013fbb4 73d3277e 000348ec 00421450 00000001 msvcrt!free+0xc3
*** WARNING: Unable to verify checksum for image00400000
*** ERROR: Module load completed but symbols could not be loaded for image00400000
0013fbbc 00421450 00000001 00441030 0013fc94 MFC42!CString::FreeData+0x43
0013fbe0 77c09ec5 00000000 00000000 00252020 image00400000+0x21450
0013fbf0 77bef099 00000000 0013fc14 0013fc20 msvcrt!_cexit+0xf
0013fc00 7c92118a 77be0000 00000000 00000001 msvcrt!__CRTDLL_INIT+0x128
0013fc20 7c94354a 77bef2a1 77be0000 00000000 ntdll!LdrInitializeThunk+0x24
0013fca4 7c81caae 0000000d 00441030 ffffff09 ntdll!RtlDestroyEnvironment+0x178
0013fd98 7c81cb26 00000000 77e8f3b0 ffffffff kernel32!_ExitProcess+0x42
0013fdac 004215fc 00000000 00441030 00441030 kernel32!ExitProcess+0x14
0013ffc0 7c817077 7c931498 01bbf55c 7ffd9000 image00400000+0x215fc
0013fff0 00000000 0042eeb6 00000000 78746341 kernel32!BaseProcessStart+0x23

程序中调用了ExitProcess,vc编译后,debug版没有问题,release版运行就出错了
IP 地址: 已记录   报告
   2009-10-28, 15:02 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: ExitProcess出了问题,各位帮忙看看
Reply Quote
是释放全局对象(全局变量)时出的问题,出问题的是CString类型的变量,或者包含CString类型字段的变量;从00030000这个堆释放(free)CString的缓冲区(000348EC )时,出错了。
从上面的栈回溯来看,目前你使用的符号文件还不准确,EXE文件(PMMis.exe)没有符号,ntdll的符号文件也有问题,RtlpNtMakeTemporaryKey显然是噪声。建议先把符号文件弄好...

IP 地址: 已记录   报告
   2009-11-04, 16:17 下午
xszhou 离线,最后访问时间: 2009/10/28 10:13:58 兰陵

发帖数前500位
男
注册: 2008-07-06
发 贴: 2
Re: ExitProcess出了问题,各位帮忙看看
Reply Quote
多谢。问题的确出在VC 6的CString上,改用vs2008的vc编译就没问题了
IP 地址: 已记录   报告
高端调试 » 软件调试 » C/C++本地代码调试 » Re: ExitProcess出了问题,各位帮忙看看

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.