约有 73 项符合查询结果, 以下是第 1 - 8项。
费时 < 1 秒。
请把死锁的CallStack贴上来
我估计,WaitForSingleObject()再往前就是EnterCriticalSection(),再往前就是LoadLibrary()/FreeLibrary()了。
如果是这样,估计你们的源代码在哪里调TerminateThread()/KillThread()了。
查查吧^_^
祝早日解决问题
Posted in WinDbg
by
手语
on 2009-12-10
谢谢guozf。
问题已经解决了。
确实如你所说,这个调用只能在CDB主线程调用。
原因是这样的,CDB主线程在等待用户输入。即使其他线程执行了G命令,CDB主线程仍然回不到DebugEvent循环。所以就一直挂在那里,一直等待有人输入,哪怕只是一个回车。
再次感谢。
Posted in WinDbg
by
手语
on 2009-09-10
不好意思,忘了说了。
control是IDebugControl的接口指针。
Posted in WinDbg
by
手语
on 2009-09-09
请教各位有写WinDBG扩展命令丰富经验的兄弟们,我有个问题一整天了也解决不了。
事情是这样的
我在开发一个做自动调试功能的WinDBG扩展,在CDB.exe执行扩展命令后建立一个独立的线程用来控制被调试程序的暂时停止和继续执行。其间会做一些Symbol解析之类的工作(被调试程序运行时DbgEng无法解析Symbol)。
注意现在CDB进程中有两个线程了:1个是CDB主线程,用来处理各种Debug Event;另1个是我创建的线程用来控制被调试程序的暂时停止和继续执行。
暂时停止:我用DebuBreakProcess()暂停被调试进程
继续执行:这是我用来继续执行的代码,但是不起作用。必须手动在CDB控制台窗口输入任意键后,被调试进程才能恢复执行。
hr = ...
Posted in WinDbg
by
手语
on 2009-09-09
这么问不太精确...不知道具体指什么
如果想知道某个数据结构大小,或者结构中某个指示size的成员的位置,还是先看看整个heap的组织结构吧
如果是问什么命令的话,看windbg帮助吧,!heap相关那些
Posted in WinDbg
by
手语
on 2009-08-15
根据记忆,过程是这样的:
1. 执行filter, 返回EXCEPTION_EXECUTE_HANDLER
2. UNWIND过程,依次调用前面所有的Handler执行堆栈清理
3. 执行__except对应的异常代码
这是标准exception handler的连续的三步。
不一定精确,很久没复习了,最近都在写代码很少调试异常问题。
《软件调试》和Matt Patric那片老文都有精确描述。
Posted in Windows内核调试
by
手语
on 2009-08-15
上周收到China-pub的新书推荐,第一本就是老雷翻译的《观止》。
以前曾经在这听老雷强烈推荐过,一定是本有内涵的书。
周末入手,还没读太多。倒是老雷那篇序给我很多感触。
一本书的译名都要经过反复推敲,译者的认真程度可见一斑。一定是值得读的好书。
这样认真和追求完美也是程序员的共性。
虽然早听说《Showstopper》在翻译,但一直不知道译名是什么。
当一看见新书推荐中《观止》的名字时,立马就想到这就是《Showstopper》。这个名字真是太恰当了。
继续拜读中,希望从书中能多汲取对人生、事业、项目有帮助的养分。
恭喜老雷了。喜欢你的文笔。
Posted in 《软件调试》书友
by
手语
on 2009-08-10
这种情况,有可能是因为错误调用TerminateThread()而引起的。
正在等待CriticalSection的线程被其他线程强行中止了。
可以在代码中搜索一下,分析他们什么情况下可能被调用,也许有帮助。
Posted in WinDbg
by
手语
on 2009-07-08