stoneabc
驱动牛犊
驱动牛犊
  • 注册日期2004-12-06
  • 最后登录2007-11-28
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:1786回复:16

WinDBG 调试一问

楼主#
更多 发布于:2005-02-16 14:53
小弟用windbg和vmware搭建了debug环境,
在debug 我的driver的时候,当我的断点设置到一个routine里,
当走到这个routine里,我发现有些local variable的值的"local"里没有列出来,我用"watch"也不行,更加看不到比如deviceExtension的某个field的当前值,:(
请问大家知道是为什么吗,如何才能看到那些deviceExtension field和local variable的值呢?
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-02-16 16:26
小弟用windbg和vmware搭建了debug环境,
在debug 我的driver的时候,当我的断点设置到一个routine里,
当走到这个routine里,我发现有些local variable的值的"local"里没有列出来,我用"watch"也不行,更加看不到比如deviceExtension的某个field的当前值,:(
请问大家知道是为什么吗,如何才能看到那些deviceExtension field和local variable的值呢?

只有有调试符号的才会被列出,你是否是checked版编译,并且是否已正确加载调试符号
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-02-16 18:54

只有有调试符号的才会被列出,你是否是checked版编译,并且是否已正确加载调试符号

对,一方面是这个原因,但另外也可是因为Driver会优化,导致有些局部变量使用寄存器代替了,所以使用local命令并不一定能看到所有本地变量
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地板#
发布于:2005-02-16 19:49
用汇编看得了,真不明白你们为什么不喜欢用汇编???
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
stoneabc
驱动牛犊
驱动牛犊
  • 注册日期2004-12-06
  • 最后登录2007-11-28
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-02-16 21:18
哈,兄弟们都已经来啦,我还没开始上班呢,给大家拜个晚年先:)

你们说的调试符号是什么东西? 我发现windbg已经加载了我要调试的driver的.pdb文件,你们说的是不是就是它啊? 调试的时候比若说想通过watch看deviceExtension->XXX 的值, watch窗口会说什么好像access memory error 什么的?
是你们说的调试符号的问题吗?如果是,怎么装它呢?
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-02-16 22:03
用汇编看得了,真不明白你们为什么不喜欢用汇编???

老大,汇编不是所有人都会(或者说熟悉)的,但要写好驱动汇编最好能懂(至少看懂)一些。
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-02-16 22:13
哈,兄弟们都已经来啦,我还没开始上班呢,给大家拜个晚年先:)

你们说的调试符号是什么东西? 我发现windbg已经加载了我要调试的driver的.pdb文件,你们说的是不是就是它啊? 调试的时候比若说想通过watch看deviceExtension->XXX 的值, watch窗口会说什么好像access memory error 什么的?
是你们说的调试符号的问题吗?如果是,怎么装它呢?

看看Windbg帮助的Symbols主题。
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
Odyssey
驱动小牛
驱动小牛
  • 注册日期2004-12-15
  • 最后登录2008-03-29
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望115点
  • 贡献值0点
  • 好评度115点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-02-17 07:08
发现VMWare + Windbg比VMWare + SoftIce好用啊。
好像Virtual SoftIce不能用named pipe作kernel connection.
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-02-17 12:17
用汇编看得了,真不明白你们为什么不喜欢用汇编???

我以前是铁杆的汇编迷,但现在的编译器已经相当智能,比单个人优化的好,从以前的堆栈桢传递参数到现在的快速调用,现在我改变了看法,于是有时也伤感,现在很多人可以很轻易地做我们以前费很大力气写的毫无章法的牛仔式的程序,再说现在汇编也高级起来了,除非有特别必要,汇编代码跟C没什么区别,我现在最多用inline汇编,如果编译器不支持某些指令,最多硬编码上两个。
我觉得汇编以后的前途在于类似安腾这样的显式并行,编译器做起来很困难的领域,在串行环境中,廉颇老已了,真是伤感
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
stoneabc
驱动牛犊
驱动牛犊
  • 注册日期2004-12-06
  • 最后登录2007-11-28
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-02-17 21:49
请问有人能回答我的问题吗?
想看到deviceExtentsion->XXX的值光load这个driver的.pdb文件够不够?
tiamo
VIP专家组
VIP专家组
  • 注册日期2002-02-26
  • 最后登录2018-01-09
  • 粉丝17
  • 关注4
  • 积分50分
  • 威望142点
  • 贡献值1点
  • 好评度40点
  • 原创分2分
  • 专家分15分
  • 原创先锋奖
  • 社区居民
10楼#
发布于:2005-02-18 05:53
楼上....

deviceExtension是全局变量么....

用调试器不会汇编?
写驱动不会汇编?

在我看来实在难以想象....
不要回复跟我吵架.......哈哈..
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-02-18 07:42
用调试器不会汇编?
写驱动不会汇编?
在我看来实在难以想象....
不要回复跟我吵架.......哈哈..
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-02-18 07:44
用调试器不会汇编?
写驱动不会汇编?
在我看来实在难以想象....
不要回复跟我吵架.......哈哈..

对确实是不能想象,但如果刚开始使用调试器那就不一定了,
我可不是想给你吵架哦 :D
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
13楼#
发布于:2005-02-18 10:04
廉颇老已,尚能饭否,哈哈,有同感.

所以现在用汇编只能自娱自乐拉,哈哈......

他人笑我太疯癫,我笑他人看不穿......
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2005-02-18 10:04
请问有人能回答我的问题吗?
想看到deviceExtentsion->XXX的值光load这个driver的.pdb文件够不够?

.pdb文件本身就是符号表文件,全名program database。如果你有源程序,很惭愧,我只用softice,在softice的symbol loader中还可以将源代码一块形成nms文件,这样就完全可以看任何东东了,但依你的情况看,似乎你没有源代码。
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
stoneabc
驱动牛犊
驱动牛犊
  • 注册日期2004-12-06
  • 最后登录2007-11-28
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2005-02-18 22:34
[quote]请问有人能回答我的问题吗?
想看到deviceExtentsion->XXX的值光load这个driver的.pdb文件够不够?

.pdb文件本身就是符号表文件,全名program database。如果你有源程序,很惭愧,我只用softice,在softice的symbol loader中还可以将源代码一块形成nms文件,这样就完全可以看任何东东了,但依你的情况看,似乎你没有源代码。 [/quote]

源代码是我自己写的,所以也有它的.pdb文件.
不过我不明白为什么断点设在有些routine里可以看到一些local的变量而在另一些routine里却不行.
有人用过windbg碰到过类似的问题吗?
如果说有些local值被优化到了register,那么怎么才能看到他们的值呢,我不知道哪个register里存着它的值.是不是可以在编译是不做优化就不会把local variable优化到register里面了?
还有,全局的变量的值怎么看啊?
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2005-02-19 10:01
惭愧,windbg不会
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
游客

返回顶部