FAULTING_IP: 
ntdll!RtlpCoalesceFreeBlocks+21
7c930c27 f6460501        test    byte ptr [esi+5],1EXCEPTION_RECORD:  ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 7c930c27 (ntdll!RtlpCoalesceFreeBlocks+0x00000021)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000000
   Parameter[1]: 20972d2d
Attempt to read from address 20972d2dPROCESS_NAME:  Dispatch.exeERROR_CODE: (NTSTATUS) 0xc0000005 - "0x%08lx"EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - "0x%08lx"EXCEPTION_PARAMETER1:  00000000EXCEPTION_PARAMETER2:  20972d2dREAD_ADDRESS:  20972d2d FOLLOWUP_IP: 
ntdll!RtlpCoalesceFreeBlocks+21
7c930c27 f6460501        test    byte ptr [esi+5],1ADDITIONAL_DEBUG_TEXT:  Enable Pageheap/AutoVeriferFAULTING_THREAD:  00000bf0DEFAULT_BUCKET_ID:  HEAP_CORRUPTIONPRIMARY_PROBLEM_CLASS:  HEAP_CORRUPTIONBUGCHECK_STR:  APPLICATION_FAULT_HEAP_CORRUPTION_INVALID_POINTER_READLAST_CONTROL_TRANSFER:  from 7c930d5c to 7c930c27STACK_TEXT:  
0264fb64 7c930d5c 01310000 209731a8 0264fc1c ntdll!RtlpCoalesceFreeBlocks+0x21
0264fc38 7c34218a 01310000 00000000 209731b0 ntdll!RtlFreeHeap+0x2e9
0264fc80 00446517 209731b0 00123604 00447e3b msvcr71!free+0xc3 [f:\vs70builds\3052\vc\crtbld\crt\src\free.c @ 103]
WARNING: Stack unwind information not available. Following frames may be wrong.
0264fd0c 7c93056d 77d660a9 000000d8 00000000 Dispatch+0x46517
0264fe4c 7c3416b3 01310000 00000000 7c3416b8 ntdll!RtlFreeHeap+0x647
7c9306eb ffffff90 000000ff 95bbc500 9090907c msvcr71!_heap_alloc+0xe0 [f:\vs70builds\3052\vc\crtbld\crt\src\malloc.c @ 212]
7c9306f3 95bbc500 9090907c 0c6a9090 93073868 0xffffff90
7c9306f7 9090907c 0c6a9090 93073868 e6b5e87c 0x95bbc500
7c9306fb 0c6a9090 93073868 e6b5e87c 758bffff 0x9090907c
7c9306ff 93073868 e6b5e87c 758bffff 0c46ff08 0xc6a9090
7c930703 e6b5e87c 758bffff 0c46ff08 00fc6583 0x93073868
7c930707 758bffff 0c46ff08 00fc6583 e8e8ce8b 0xe6b5e87c
7c93070b 0c46ff08 00fc6583 e8e8ce8b 89ffff27 0x758bffff
7c93070f 00fc6583 e8e8ce8b 89ffff27 4d83e445 0xc46ff08
7c930713 e8e8ce8b 89ffff27 4d83e445 c085fffc 0xfc6583
7c930717 89ffff27 4d83e445 c085fffc 0eef840f 0xe8e8ce8b
7c93071b 4d83e445 c085fffc 0eef840f d0e80000 0x89ffff27
7c93071f c085fffc 0eef840f d0e80000 c2ffffe6 0x4d83e445
7c930723 0eef840f d0e80000 c2ffffe6 90900004 0xc085fffc

解决方案 »

  1.   

    代码错误导致ntdll crt异常,应该去寻找你代码错误的地方,而不是看底层crash的地方。这是你抓的dump吗?是不是有PDB文件没加载啊。
      

  2.   

     应该是没有pdb文件,要不会有源文件代码错误行。
      

  3.   

    AV了……在Free堆的时候。如果指针正常,那错误应该不是发生在这里。缓冲区溢出的可能性比较大。只能结合数据断点来查了。调试的时候把Win32 Exception打开的话也许有帮助。
      

  4.   


    请问Win32 Exception在哪打开啊?
      

  5.   

    上次也碰到这种差不多的问题,最后定为到new操作,然后不知道咋办了。。晕死了