约有 13 项符合查询结果, 以下是第 1 - 2项。
费时 < 1 秒。
最近在分析一个dump,出错的栈是这个样子的:0:030> kbn *** Stack trace for last set context - .thread/.cxr resets it # ChildEBP RetAddr Args to Child 00 0649eb84 00f815e6 e06d7363 00000001 00000003 KERNELBASE!RaiseException+0x5801 0649ebc4 00f6b284 0649ec24 00fd1994 52edb865 ...
Posted in C/C++本地代码调试
by
woodhead
on 2016-02-25
一个dump文件分析结果如下:
0:067> kbn # ChildEBP RetAddr Args to Child 00 2081fd8c 0d751dd6 3fb0bbd1 658bacc0 32323131 SPDecV33!LeadUpVec+0xe [f:\dd\vctools\crt_bld\SELF_X86\crt\src\INTEL\memcpy.asm @ 233]01 2081fda8 0d7525de 2081ff00 2081ff54 2081feec ...
Posted in C/C++本地代码调试
by
woodhead
on 2013-10-14
!cs -l 和上面分析一致:也是0号线程占着呢
网上搜索了一下:在''Debug''菜单下----''Exceptions''----''Managed Debugging Assistants''中勾掉''LoaderLock'' 这样能解决么?
0:000> !cs -l-----------------------------------------DebugInfo = 0x77434360Critical section = 0x774320c0 ...
Posted in C/C++本地代码调试
by
woodhead
on 2013-04-27
这个我上面的没复制全,能看出来,堆栈如下:
0:016> kbn # ChildEBP RetAddr Args to Child 00 1942fdb4 77368de4 000001e4 00000000 00000000 ntdll!ZwWaitForSingleObject+0x1501 1942fe18 77368cc8 00000000 00000000 19212988 ntdll!RtlpWaitOnCriticalSection+0x13e02 1942fe40 7738e861 ...
Posted in C/C++本地代码调试
by
woodhead
on 2013-04-27
搜索了点资料,
DllMain中不当操作导致死锁问题的分析--线程退出时产生了死锁 这篇文章和此dump栈比较像,检查了一下我们的dll,dllmain里面什么都没写,而上层调用的库不是我们写的,不知道是否会有影响。
Posted in C/C++本地代码调试
by
woodhead
on 2013-04-27
dump分析如下:0号线程在等16号线程,16号线程在等一个临界区,这个临界区被0号线程占着。分析代码,0号线程死锁那会释放等待的线程有点多,不好找到底是等哪个线程出的问题。16号线程退出时等待的临界区到底是什么呢?
ps:_endthreadex程序中没有显式调用,操作系统自己调用的。
0:000> kbn# ChildEBP RetAddr Args to Child 00 0043df48 76e60816 00000954 00000000 00000000 ntdll!ZwWaitForSingleObject+0x1501 0043dfb4 76021184 00000954 ffffffff 00000000 ...
Posted in C/C++本地代码调试
by
woodhead
on 2013-04-26
栈回溯被破坏了么?一个异常dump分析如下,向各位高手请教:如何跟踪?什么情况下会出现:WARNING: Frame IP not in any known module. Following frames may be wrong 符号应该都是对的
0:027> .ecxreax=09b83258 ebx=00f1b5e8 ecx=000003dc edx=00000000 esi=000003dc edi=09b8315ceip=6e845536 esp=09b83068 ebp=09b8315c iopl=0 nv up ei pl nz na po nccs=001b ...
Posted in C/C++本地代码调试
by
woodhead
on 2013-04-03
貌似找着原因了,有个线程里会对堆进行操作,但是主线程对这个线程调用SuspendThread 和 TerminateThread, windows核心编程里说:挂起线程时,如果线程正在分配堆中的内存,线程将锁定堆。
初步预测是:挂起线程以后,堆被锁定了,然后主线程调用完挂起后,又直接调用终止线程了。堆的锁定就得不到释放了,再创建线程时,就出错了。这样貌似可以和dump分析结果一致。
只是猜测,由于是异常,还得继续跟踪。
Posted in C/C++本地代码调试
by
woodhead
on 2013-03-21
dump较大,有20M... 就不传了
0:000> kbn # ChildEBP RetAddr Args to Child 00 0025efa0 77266a24 77252278 00005654 00000000 ntdll!KiFastSystemCallRet01 0025efa4 77252278 00005654 00000000 00000000 ntdll!ZwWaitForSingleObject+0xc02 0025f008 7725215c 00000000 00000000 ...
Posted in C/C++本地代码调试
by
woodhead
on 2013-03-09