Windbg 双机代码同步调试设置
Windbg的设置
Windbg的设置
Windbg本身可以直接从微软的网站上下载
下载地址:http://www.microsoft.com/whdc/devtools/debugging/default.mspx
Windbg的设置其实主要是关于调试符号的设置,没有符号你会很不爽,会忽视掉许多细节,因此调试符号之于Windbg是非常重要的.
1.系统调试符号的设置
首先找个空间足够的位置,XP sp2的调试符号完整一点大概需要1G的空间~~
比如我是在D盘,建立一个MyLocalSymbols文件夹,用来存放系统的符号文件.
然后你可以从微软的网站上下载相应的调试符号包(大要180M~200M大小),要根据你虚拟机中的相应系统版本来下载,安装到MyLocalSymbols文件夹下.
当然,不安装符号包的话也可以设置成调试时自动从网上下载(即使你安装了符号包,有部分内容还是要到网上下载),具体怎么设置稍后讲.
不过我比较喜欢一次搞完,免得每次用的时候都要等它到网上下载比较慢~~
2.自己的调试符号的设置
再建一个文件夹,用于存放我们自己编译出来的驱动的符号文件.单独存放,不要跟系统的混到一起.
我这里就仍在D盘建立一个MySysSymbols文件夹,用于存放自己的符号文件.
然后给这个文件夹创建一个快捷方式,把它放到C:\Documents and Settings\你的用户名\SendTo文件夹下.
这样,以后编译完驱动以后,直接在符号文件上右击->发送到"MySysSymbols"就可以了,很方便~~
3.环境变量的设置
如果你想Windbg启动时自动识别符号路径的设置的话,我们就来建立一个环境变量
在"我的电脑"上右击,"属性"->"高级"->"环境变量",然后我们给当前用记新建一个名为_NT_SYMBOL_PATH的环境变量
值为 :
D:\MyLocalSymbols;D:\MySysSymbols;SRV*D:\MyLocalSymbols*http://msdl.microsoft.com/download/symbols
这样设置以后,系统的调试符号就在D:\MyLocalSymbols下,而我们自己驱动的调试符号就在D:\MySysSymbols下
当符号文件不匹配时,Windbg会自动连网从http://msdl.microsoft.com/download/symbols下载符号文件到D:\MyLocalSymbols,下次再用到时就不用下载了
设置好保存就可以了,修改环境变量需要重新启动系统才能生效~
到这里我再说一点,当你用了一段时间之后,常用的符号文件基本上就全有了,不想等,也可以用一些方法让Windbg马上下载符号文件
直接打一些正确的但是当前符号包中不正确或不匹配的符号名称可以"刺激"Windbg马上到网上下载,我为了节约时间就是这么干的.比如打dt nt!_KPCR,如果你的内核文件TimeDataStamp不匹配(内核等几个核心文件由于更新经常会这样)使得Windbg无法正确显示此符号,它就会马上乖乖地到网上把整个符号文件下载回来~~
在调试符号基本全了以后(调试时基本不再出现Windbg再连网下载符号文件的情况),建议把环境变量中联网的部分去掉。以我的为例,就是设置成 D:\MyLocalSymbols;D:\MySysSymbols
Windbg源码调试配置
这三个都要设置调试SYS文件所在目录
我是用vs2013进行开发的。所以项目目录是(这是要在代码目录) 修改后必须重启windbg
要调试的时候必须把代码跟SYS文件.obj所有必须存在 放到一起。这样windbg才会载入进行调试 简单地说也就是把代码 .cpp .h所有文件放到上图中的win7Debug里面
Windbg 双机代码同步调试设置的更多相关文章
- Windbg双机调试环境配置(Windows7/Windows XP+VirtualBox/VMware+WDK7600)
简介:Windbg双机调试内核.驱动 下载软件: 下载Windbg(GRMWDK_EN_7600_1.ISO) 下载VirtualBox 5.2/VMware 12 一.安装WDK,这里要提一点的是D ...
- 隔离python 运行环境和Pycharm 设置代码同步
隔离python 运行环境 查看当前有哪些虚拟环境:workon 进入虚拟环境:workon django 退出虚拟环境:deactivate 创建虚拟环境: mkvirtualenv -p /usr ...
- windbg源码驱动调试 + 无源码驱动调试
windbg源码驱动调试 环境信息 虚拟机:win7 32位 windbg:6.12(版本不存在太大影响) 设置过程 windbg与虚拟机连接:链接 配置windbg 配置好双机调试后,点击win ...
- VSCode 云同步扩展设置 Settings Sync 插件
VSCode 云同步扩展设置 Settings Sync 插件 Hi.大家好,今天又是美好的一天. 关于 Settings Sync扩展: Settings Sync可以同步你当前的VSCode配置环 ...
- [转帖]Windows下cwRsyncServer双机连续同步部署
Windows下cwRsyncServer双机连续同步部署 https://www.cnblogs.com/nulige/p/7607503.html 找时间做一下测试 应该能更好的实现 自动部署的功 ...
- 初学svn对版本进行控制 用post- commit钩子实现代码同步到web目录
这里只是一个记录,原文摘抄svn利用钩子实现代码同步到web目录 思路: 找 到SVN Server中的仓库(Repositories)文件夹的位置,在相应的项目文件夹中找到hooks文件夹.在该文件 ...
- ANE原生代码的调试(安卓)
忙了一天终于有空继续这篇教程了. ANE的原生代码的调试其实在Adobe的官网有介绍的,但是同样很含糊,我摸索了一段时间现在记录下我的心得. 首先你得安装Eclipse,然后你得启动Eclipse 然 ...
- github使用及代码同步
github是近两年比较火的分布式版本控制工具,很多nb的开源项目代码都托管在github上,比如Facebook.JQuery.Node.js等等,这里简单介绍一下github使用方法以及和本地工程 ...
- 利用IDA6.6进行apk dex代码动态调试
网上公开IDA6.6已经有一段时间,这个版本有个好处就是可以动态调试java代码.正好现在需要动态调试,所以顺便练习一下. 根据android的官方文档,如果要调试一个apk里面的dex代码,必须满足 ...
随机推荐
- Component creation must be done on Event Dispatch Thread错误解决方法
在用java swing 做例子,给页面设置皮肤样式的时候出现了这个错误: org.jvnet.substance.api.UiThreadingViolationException: Compone ...
- Math.Round函数详解
有不少人误将Math.Round函数当作四舍五入函数在处理, 结果往往不正确, 实际上Math.Round采用的是国际通行的是 Banker 舍入法. Banker's rounding(银行家舍入) ...
- ZeroMQ(java)中组件间数据传输(Pipe的实现)
在ZeroMQ(java)中,整个IO的处理流程都是分层来进行的,当然处于最下端的肯定是前面介绍过的poller以及StreamEngin了....涉及到上层的话就还有session,以及socket ...
- Jackson 框架,轻易转换JSON
Jackson 框架,轻易转换JSON Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 前面有介绍过json-lib这个框架,在 ...
- python4delphi Python could not be properly initialized. We must quit.
要用32位的DLL,不要用64位的dll Unable to load Python 2.7 dll with Delphi 2010 #6 Closed GoogleCodeExporter op ...
- HDOJ 1272 并查集
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- 试试markdown
看看有没有wrapper... list first list second list third list fourth list in list 1 list list list > < ...
- php数组转换js数组操作及json_encode应用
对于php,个人感觉能够熟练操作数组和字符串,基本上已经是入门了,php本身有很多操作数组和字符串的函数,今天在做一个功能时,需要用Js动态的创建门店信息,这些信息是要从后台添加的,想来想去,通过ph ...
- ios7技巧:你需要掌握的19个iOS7使用技巧
从右往左滑动屏幕,可看到信息收到的时间. 指南针应用还可以用作水平仪,滑动屏幕即可. 被苹果称作Spotlight的搜索功能有所改变.在屏幕中间向下滑动即可打开该项功能,你可以搜索文本.邮件.应用.歌 ...
- javascript的事件监听与捕获和冒泡
在前端开发中,我们经常需要对某些事件进行监听.这样只要在指定的元素上触发了该事件,就会执行一个回调来进行相关的操作. 而js中事件监听方法总共有三种,分别如下所示: element.addEventL ...