![Windows基础调试器_第1页](http://file4.renrendoc.com/view/47ea0a3db7162093eba266838db0de0f/47ea0a3db7162093eba266838db0de0f1.gif)
![Windows基础调试器_第2页](http://file4.renrendoc.com/view/47ea0a3db7162093eba266838db0de0f/47ea0a3db7162093eba266838db0de0f2.gif)
![Windows基础调试器_第3页](http://file4.renrendoc.com/view/47ea0a3db7162093eba266838db0de0f/47ea0a3db7162093eba266838db0de0f3.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Windows 基础调试器(BASIC DEBUGGER)Windows提供了许多调试程序的方法.其中一个叫Basic Debug.提供了基础调试方法.他是一个事件驱动的调试方法.提供了简单调试功能.所谓事件驱动就是在相关调试事件发 生时给调试器发送相关事件并由调试器对该事件采取适当的动作.下面就来看看如何创建一个基础调试器.有两种方式运行基础调试器.1.其中一个方法是调试正在运行进程.要对运行中的进程进行调试,可以通过调用DebugActiveProcess,并指定进程标识(PID).要得到进程ID可以调用EnumProcesses or Process32First两个函数.DebugAc
2、tiveProcess将调试器附加到目标进程.这样就只能调试所附加的进程而不能调 试子进程.调试器必须有适当权限来执行DebugActiveProcess.要得到更多权限控制可参阅权限 控制(Access Control ).在调试器创建或附加到所要调试的目标进程后,系统将目标进程(如果指定子进程也包括在 内)发生的所有相关事件发送到调试器.要了解更多的调试事件可参考Debugging Events.要分离调试进程,调试器调用DebugActiveProcessStop函数.调试函数声明BOOL WINAPI DebugActiveProcess( _in DWORD dwProcessId
3、);dwProcessID 指定进程 PID如果执行成功返回非0,否则错误返回0,要获取更多错误信息,执行 GetLastError要停止调试,你只要退出被调试的进程,或者调用DebugActiveProcessStop函 数.退出调试器同样退出被调试进程,除非你调用了 DebugSetProcessKillOnExit 函数.调试器必须对目标进程有相应权限,并且能对打开的进程具有 PROCESS_ALL_ACCESS 权限.Windows Me/98/95上,如果目标进程PID有效,调试器就有适当权限.其他版本Windows,如果目标进程使用了安全描述符,调试器如果没有Full Access
4、,调用DebugActiveProcess将失败.如果调试进程具有SE_DEBUG_NAME权限并 启用,它就能调试任何进程。系统检测完进程PID,并确认调试器有效后。函数DebugActiveProcess返回 TRUE.然后调试器调用WaitForDebugEvent函数来等待事件。这里要注意,DebugActiveProcess WaitForDebugEvent DebugActiveProcessStop 这三个函数要在同一个线程运行系统暂停被调试进程中的所有线程,并给调试进程发送被调试进程的当前状态。系统发送一个CREATE_PROCESS_DEBUG_EVENT调试事件表明指定进
5、程.CREATE_PROCESS_DEBUG_INFO 的 lpStartAddress成员为NULL进程中的每个线程,系统发送一个CREATE_THREAD_DEBUG_EVENT事件。 CREATE_THREAD_DEBUG_INFO 的 IpStartAddress 成员为NULL目标进程地址空间加载的每一个动态库(DLL),系统将发送一个LOAD_DLL_DEBUG_EVENT 调试事件。系统将安排给第一个线程一个断点,当恢复运行时将停在那。当所有这些都完成后,系统恢复运行所有的线程。并执行断点引发一个 EXCEPTION_DEBUG_EVENT 调试事件。然后其它调试事件将陆续发送到
6、调试器。函数要求指引 系统 要求 服务 器版本头文件链接库动态库Requires Windows Vista,Windows NT Workstation,Windows XP, Windows 2000 Professional,Windows Me, Windows 98, or Windows 95.Requires Windows Server Server, or Windows NT Server.2008, Windows Server 2003, Windows 2000Declared in Winbase.h; include Windows.h.Use Kernel32.lib.Requires Kernel32.dll.2.另外一个方法是使用CreateProcess函数创建要调试的进程,并给创建标记(CreateFlag) 设置为 DEBUG_PRO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2031年中国全棉吊带背心连内裤行业投资前景及策略咨询研究报告
- 新能源汽车动力电池及管理系统检修-项目一 新能源汽车动力电池及管理系统认知
- 机械行业2024年业绩预告综述:料峭春寒梅花点点
- 长租公寓合同管理与风险防范
- 医院餐饮服务合同范本
- 焊接工程师技术服务合同
- 典当行固定资产抵押合同范本
- 售后服务合同范本
- 能源采购合同转让及补充协议
- 度设备维修工程合同
- 微信视频号运营技巧攻略详解全套
- 2023CSCO非小细胞肺癌诊疗指南解读
- 人教版九年级英语全册期末复习完成句子专项练习
- 干部选拔任用程序
- 口服降糖药物分类详解课件
- 二级生物安全实验室设计建造与运行管理指南
- 围手术期疼痛护理课件
- 蛇年元宵节灯谜大全(附答案)
- 外国新闻传播史-张昆课件
- 中华民族的形成与发展
- 2023年上海中侨职业技术大学单招考试职业技能考试模拟试题及答案解析
评论
0/150
提交评论