mrguo
驱动牛犊
驱动牛犊
  • 注册日期2008-12-25
  • 最后登录2009-05-05
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3673回复:2

内核调试时,为什么在WinDbg中不能显示模块的加载信息?

楼主#
更多 发布于:2009-01-31 12:13
各位高手,我根据bspmake的驱动学习笔记视频新搭建了一个主机+虚拟机的调试环境,唯一不同的是我的机器是上不了网的(开发机不允许上网),因此,只好将符号安装文件从其他机器上下载,然后再安装到了我的机器上,并设置环境变量指向安装到的位置。然后,以DEBUG模式启动虚拟机,再启动主机的windbg,这时,在WinDbg中应该是可以看到虚拟机中系统模块的加载过程的,比如象这样:
Kernel base = 0x804d8000 PsLoadedModuleList = 0x80554fc0
System uptime: not available
    module->ntkrnlpa.exe 804D800 2065536
    module->hal.dll 806D1000 131840
    module->kdcom.dll F9E9C00 8192
    ....

但是,在我的机器上,只出现了:Kernel base = 0x80800000 PsLoadedModuleList = 0x808a6ea8 之后,WinDbg就没有显示了,也就是说没有再显示应该出现的有关module的加载信息。当时,我怀疑是不是连接有问题,就点击WinDbg中的[Debug]/[Break]菜单,发现WinDbg能中止虚拟机中系统的运行,然后,再点[Debug]/[Go],也可以继续虚拟机中系统的运行,因此,这说明虚拟机和主机的连接应该是建立好了的。但是,为什么当虚拟机的系统启动时在WinDbg中不能显示模块的加载信息呢?

znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2009-02-04 16:12
很有可能是符号不对.开发机,特别是windbg调试的,建议还是要上网,设置好正确的符号服务器地址,它会自动查找必要的文件
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
ytfrdfiw
驱动牛犊
驱动牛犊
  • 注册日期2005-09-28
  • 最后登录2016-02-19
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望138点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-09-30 14:20
不用上网,没有那么复杂。但下载symbols需要注意是free版,不要下载debug版本,因为我们的Os一般是free(release)版。我原来就以为下载debug是调试用的,死活都不行。简直崩溃呀。你试试吧。
游客

返回顶部