首页
社区
课程
招聘
[原创]sys文件编译与调试环境设置的一点体会
发表于: 2009-4-3 11:38 8039

[原创]sys文件编译与调试环境设置的一点体会

2009-4-3 11:38
8039

前人的文章图文并茂但看后还是要费一番功夫。原因很简单,对于一些细节之处前人往往高估了我等菜鸟的水平。为节约后人的时间,特用朴实的话语留下我的一点体会。

    每个人编译调试的环境各不相同,你可以批判的吸收你想要的东西。
驱动编译环境的简单设置:网上下载的ddk2003应该是这个文件1830_usa_ddk.iso,默认安装在xx:\WINDDK\3790.1830目录下,你可以把3790.1830目录下的所有文件拷贝到WINDDK下,然后把3790.1830目录删除,这样可以减少一层目录(随你)。
    编译驱动很简单,通常我不用开始菜单里的快捷键会出现稀奇古怪的问题。你可以在命令行窗口中进入安装目录中的bin目录,输入命令xx:\WINDDK\bin>setenv.bat xx:\WINDDK checked winxp后当前目录会自动变为xx:\WINDD>,然后用cd命令来到你的驱动源文件目录,输入build命令即可(前提是你的源文件所在目录下的makefile和sources文件已设置好,如何设置很简单,不用教)。注意setenv.bat在bin目录下,后面跟的是三个参数,具体你想用哪种参数,打开setenv.bat看看就知道了,它一开始是循环依次检查参数,再相应的设置当前cmd窗口中的环境变量。第一个参数xx:\WINDDK是你ddk安装的路径,最后不用加“\”,不然会出错。如果出错你可以在当前的dos窗口中用path ;将path变量清空,再执行一次xx:\WINDDK\bin>setenv.bat xx:\WINDDK checked winxp。然后用path命令检查一下。

驱动调试环境设置关键点:
一、虚拟机中的设置  
   1、新建虚拟机并安装winxp后,在poweroff条件下,添加一个虚拟串口
      实现主机中windbug应用程序和虚拟机之间的串口连接,这样windbg就能捕获来自于虚拟机串口的调试信息。串口设置注意通常选择设置一端是server(此种设置是先启动虚拟机再运行windbg进行连接,此时虚拟机作为服务端),另一端是应用程序(windbg)。
   2、进入虚拟机系统,在C:\boot.ini文件(去掉只读属性)最后添加
      multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /debug /debugport=com1 /baudrate=115200
     注意:添加的语句中不要有不适当的换行,这将会影响你正常启动。
   3、重启虚拟机(启动菜单选第2项调试模式进入)。
二、主机中windbg的设置
   在file->kernel debug中中设置
   1、port中输入\\.\pipe\com_1这与虚拟机中串口的设置是一致的。
   2、pipe前要打钩
   3、baud rate为115200这与虚拟机里C盘根目录下boot.ini文件中设置是一致的
三、启动主机中WinDBG,选File->KernelDebug的COM页,按上述设置(未讲到的用默认值),点“确定”
    窗口出现:
    Opened \\.\pipe\com_1
    Waiting to reconnect...
    此时按Ctrl+Break
    显示:Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE
          Kernel Debugger connection established.表示连接虚拟机成功,此时中断于虚拟机中。
     然后在File->Symbol File Path…中设置调试所需的pdb文件的路径
     例如SRV*X:\symbols*http://msdl.microsoft.com/download/symbols

注:下载你要调试的操作系统对应的ntoskrnl.pdb符号文件的方法:
1、在你的硬盘新建一个文件夹如d:\symbols
2、在你的windbg菜单中设置符号路径SRV*d:\symbols*http://msdl.microsoft.com/download/symbols,然后在file菜单中选择kernel debug选项中的local页,点击“确定”。
3、此时你进入d:\symbols目录将看到windbg已自动从符号服务器下载了ntoskrnl.pdb,如果你电脑不能上网,将很难找到你所需的与操作系统相匹配的ntoskrnl.pdb符号文件。





[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
  • 1.JPG (18.67kb,323次下载)
  • 2.JPG (98.30kb,326次下载)
  • 3.JPG (30.55kb,324次下载)
收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 2943
活跃值: (1788)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
2
顶123456789
2009-4-3 12:40
0
雪    币: 148
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
贴主你提到了Host和Gust两个东西.

我认为这两个东西都是Windows系统.

下面是我的问题,请您回答:

Host和Gust都是XP专业版,都是32位版,都是英文版,都是带补丁2吗?
2009-4-3 13:56
0
雪    币: 2575
活跃值: (502)
能力值: ( LV2,RANK:85 )
在线值:
发帖
回帖
粉丝
4
收藏,以后备用
2009-4-3 22:58
0
雪    币: 7127
活跃值: (3652)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
收藏,方便查找。
2009-4-4 21:48
0
游客
登录 | 注册 方可回帖
返回
//