WinDbg + VMWare 调试驱动程序, 
我设置一个断点,提示错误:Symbol information for the current line cound not be located... 
在哪里设置 Symbol 信息啊 
我的开发机器是 Windows Xp 英文版本 
我的虚拟机器是 Windows 2003 Enterprise Server 
我开发的驱动程序是 2003 Checked 版本 请问该如何设置?才能正常开始调试,谢谢!

解决方案 »

  1.   

    设置符号文件路径
    File -- Symbol Search Path如:
    D:\CodesSymbols; C:\WINDOWS\Symbols;SRV*D:\LocalSymbols*http://msdl.microsoft.com/download/symbols
      

  2.   

    同上,还有Source File Path、Image File Path都要设。
      

  3.   

    我都下载了,从http://www.microsoft.com/whdc/DevTools/Debugging/symbolpkg.mspx 下载的
    也设置了。还是不行,郁闷
      

  4.   

    D:\CodesSymbols;放的是楼主的程序的pdb文件
      

  5.   

    我的代码在:
    E:\code\Kits\mydrv\我下载的 Windows 2003 Symbol 的路径是:
    E:\Windows2003.x86.fre.rtm.symbols\--------我设置的
    Symbol file path:
    E:\Windows2003.x86.fre.rtm.symbols\;SRV*E:\code\Kits\mydrv\objchk_wnet_x86\i386\*http://msdl.microsoft.com/download/symbolsSource file path:
    E:\code\Kits\mydrv\Image file path:
    E:\code\Kits\mydrv\objchk_wnet_x86\i386\
    谁愿意帮我搞定,我愿意付款。
      

  6.   

    付款就免了,如果搞定记得结帐给分就够了。首先,设置WinDbg:
    Symbol File Path:
    E:\code\Kits\mydrv\objchk_wnet_x86\i386
    Source File Path: 
    E:\code\Kits\mydrv
    Image File Path: 
    E:\code\Kits\mydrv\objchk_wnet_x86\i386
    然后,以调试模式启动虚拟机
    在虚拟机等待连接的时候,在WinDbg中选择Kernel Debug,并确定
    当WinDbg显示与虚拟机连接上之后,选择Break
    打开源程序文件,插入断点,选择Go
    当驱动程序加载并执行到断点处就会停下来
      

  7.   


    我的操作步骤:
    1,开启虚机(参数都设置好了),显示 
        Windows Server 2003, Enterprise
        Windows Server 2003, Enterprise - debug [启用调试程序]
       这个时候按上下方向键让倒计时停止
    2,启动 WinDbg,参数:"C:\Program Files\Debugging Tools for Windows\windbg.exe" -y C:\Windows\Symbols\ -b -k com:port=\\.\pipe\com_1,baud=115200,pipe
    3,按照你的要求选中 File/Kernel Debug,可是这个时候发现 File/Kernel Debug 是灰色的,不能选。
      

  8.   

    WinDbg的命令行参数我不了解,是不是直接开始Kernel Debug了?
    你不加参数执行WinDbg试试。
    需要注意的是虚拟机要开始Debug模式启动并等待连接的时候再执行WinDbg的Kernel Debug。
      

  9.   

    是的,我是打开虚机后,等待的时候才打开 WinDbg 的,其他有没有问题呢?我的 WinDbg 启动参数是否正确呢?
      

  10.   

    我用WinDbg都是直接启动不加参数的。
      

  11.   

    是不是我的驱动没有加载,我在注册表里面设置了 Start=1 对吗?
      

  12.   

    在执行Kernel Debug的时候加上连接虚拟机的设置。
    Start=1就是在系统启动不久就自动加载。
    好象WDK中有一个工具可以查看加载了哪些驱动。
      

  13.   

    首先,先下载http://msdl.microsoft.com/download/symbols/packages/windowsxp/WindowsXP-KB835935-SP2-slp-Symbols.exe?符号表,然后安装到真实系统中。
    再下载http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.5.3.8.exe?WinDbg程序的最新版本,同样也安装到真实系统中。
    接下来我们要在虚拟机中装系统了,我用的是WinXP SP2。安装完成后修改boot.ini文件。在里面[operating systems]节中加入一行,
    " multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows?XP Professional - debug" /fastdetect /debug /debugport=com1 /baudrate=115200 "
    随后关闭系统。配制虚拟机的硬件,点击 "Edit virtual machine settings",添加一个Serial Port,选择"Output to named pipe",然后下一步,第一框里保持默认的 "\\.\pipe\com_1"
    第二框里选"This end is the server."
    第三框里选"The other end is an application."
    选中 "Connect at power on"
    然后点击 "Advanced>>" 然后在新窗口中选中 "Yield CPU on poll"。保存退出。
    好了,以上就是虚拟机系统要做的全部事情。
    在真实系统中,我们要在设备管理器中。找到Com1口,然后再属性页中修改他的速率为115200。
    然后为使用方便,创建一个WinDbg的快捷方式。快捷方式的命令行为
    "C:\Program Files\Debugging Tools for Windows\windbg.exe" -y C:\Windows\Symbols\ -b -k com:port=\\.\pipe\com_1,baud=115200,pipe
    这里面-y后面的路径就是我们前面安装符号表的路径。使用时,首先运行虚拟机系统,到bootloader选择进入哪个系统的时候,我们先按一下上下,将倒计时停止。然后再到真实系统中运行刚才我们创建的WinDbg快捷方式。运行完成后再在虚拟系统中选择带有调试标志的系统即可。此时回到真实系统,稍等一会就可以看到WinDbg输出信息告诉我们两个系统已经连接上了。到此调试器已经和VMware 虚拟机连接成功了,下面就可以进行期待已久的调试工作了。
      

  14.   

    我的开发机器是 Windows Xp 英文版本  
    我的虚拟机器是 Windows 2003 Enterprise Server  
    =====================================================开发机要和虚拟机的系统一致!!!
      

  15.   

    非常感谢各位,特别是感谢 cnzdgs 问题已经解决。