阅读:3768回复:2
内核调试时,为什么在WinDbg中不能显示模块的加载信息?
各位高手,我根据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中不能显示模块的加载信息呢? |
|
沙发#
发布于:2009-02-04 16:12
很有可能是符号不对.开发机,特别是windbg调试的,建议还是要上网,设置好正确的符号服务器地址,它会自动查找必要的文件
|
|
|
板凳#
发布于:2009-09-30 14:20
不用上网,没有那么复杂。但下载symbols需要注意是free版,不要下载debug版本,因为我们的Os一般是free(release)版。我原来就以为下载debug是调试用的,死活都不行。简直崩溃呀。你试试吧。
|
|