第 6 页 (共 26 页)
第一章
第一章第一章
第一章
调试器框架
调试器框架调试器框架
调试器框架
1.1 框架的搭建
框架的搭建框架的搭建
框架的搭建
有写过 Windows 程序的人都知道 Windows 是基于消息的,当程序创建,
窗口移动,键盘按下等,窗口过程函数都会收到消息,然后根据消息做相应的处
理,其实调试器也是这样的,在 MSDN 中已经给出了一个现成的框架了,如下,我
已经去掉部分注释了,如果想获得祥细信息的话可以查下 MSDN。
DEBUG_EVENT DebugEv; // debugging event information
DWORD dwContinueStatus = DBG_CONTINUE; // exception continuation
for(;;)
{
// Wait for a debugging event to occur. The second parameter indicates
// that the function does not return until a debugging event occurs.
WaitForDebugEvent(&DebugEv, INFINITE);
// Process the debugging event code.
switch (DebugEv.dwDebugEventCode)
{
case EXCEPTION_DEBUG_EVENT:
// Process the exception code. When handling
// exceptions, remember to set the continuation
// status parameter (dwContinueStatus). This value
// is used by the ContinueDebugEvent function.
switch
(DebugEv.u.Exception.ExceptionRecord.ExceptionCode)
{
case EXCEPTION_ACCESS_VIOLATION:
case EXCEPTION_BREAKPOINT:
case EXCEPTION_DATATYPE_MISALIGNMENT:
case EXCEPTION_SINGLE_STEP:
case DBG_CONTROL_C:
}
case CREATE_THREAD_DEBUG_EVENT:
case CREATE_PROCESS_DEBUG_EVENT:
case EXIT_THREAD_DEBUG_EVENT:
// Display the thread's exit code.
case EXIT_PROCESS_DEBUG_EVENT:
// Display the process's exit code.
case LOAD_DLL_DEBUG_EVENT: