李sir_Blog

博客园 首页 联系 订阅 管理
  705 随笔 :: 58 文章 :: 134 评论 :: 193万 阅读

以前调试内核总是失败。今日成功。做个笔记。

其他的网上雷同的不做说明

(1):Symbol Search path:srv*C:\Windows\Symbols*http://msdl.microsoft.com/

download/symbols;E:\first\objchk_wxp_x86\i386

(2):Source File Path:E:\first

(3):之前的虚拟串口为串口2,但是按照网上通常的配置都是串口1的配置所以老是不成功,应该在虚拟机中配置如下:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional Debug" /fastdetect /debugport=com2 /baudrate=115200

注意这里的debugport=com2指的是实际的串口。而winDug中不用变。里面指的的是com口

(4)windug:  -k com:port=\\.\pipe\com_1,baud=115200,pipe

或其他的通用的配置

(5):先启动虚拟机选择调试模式进入,然后运行winDug快捷方式,连接的时候会停下来,这个时候点break.然后会继续运行。出现80528bdc cc              int     3这样的类型提示。这个时候虚拟机停下来了。然后在windug中输入g,表示运行。这个时候虚拟机运行。windug忙碌。

(6):将编译后的sys和加载工具拷贝进虚拟机安装,点启动。如果在DriverEntry中设置了断点。则这个时候虚拟机会停下来。然后windug进入断点。按工具栏的步入和步过单步调试。

(7):用u看入口,用bp设置断点.如bp DriverUnload
或bp first!DriverUnload就会在DriverUnload函数设置一个断点

用bl查看所有断点

kd> bl
 0 e f8ce4490 [e:\first\first.c @ 11]    0001 (0001) first!DriverUnload

用kd>bd 0删除断点

kd> bc 0清除断点

 

 

 

posted on   李sir  阅读(1110)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示