zoukankan      html  css  js  c++  java
  • 42、驱动程序调试

    1、通过打印,用KdPrint 

    2、存储dump信息。电脑属性,高级,设置,小内存存储。Dump信息用WinDbg查看。 

    3、使用WinDbg调试工具 

    1)设置符号表

    在系统环境变量,用户变量中设置_NT_SYMBOL_PATH,值为

    srv*c:\symbols*http://msdl.microsoft.com/download/symbols
    意为将http地址处下载的符号表存储于c:\symbols下。

    http://www.cnblogs.com/mydomain/archive/2010/10/14/1851681.html

    设置用户生成的驱动程序的符号表文件(pdb文件)

    通过File->Image File Path sys文件的目录设置好,sys文件会记录pdb文件的位置。

    windbg中,堆栈方向是向上的。

    2)如何使用WinDbg调试程序

    ◇安装好WinDbg,安装好Windows符号文件,并将符号文件路径加入到WinDbg的符号文件路径中。

    ◇运行WinDbg

    ◇加载***.exe的符号文件:菜单“file\symbol file path”,在对话框中选择“browse”,找到编译生成的符号文件目录选中,单击“确定”按钮,加入符号文件。

    ◇将WinDbg设置为源代码模式:在菜单“Debg”中将“Source Mode”勾选上。

    ◇打开供调试的可执行文件***.exe:选择菜单“file>>executable file path”,在对话框中找到之前生成的***.exe,单击“打开”按钮。

    WinDbg会在程序的某个位置自动中断。在“Command”窗口下面的命令输入栏中输入命令。

    3)命令

    F8单步

    查看内存数据 

    列出进程信息 

    lm 查看已经加载的模块 

    运行

    单步运行

    ld 加载符号文件

    查看寄存器

    bp,bu,bm:bp为执行断点,bu为未解析断点,bm为符号断点

    bl 列出断点

    bc 清除断点

    4、通过WinDbgVMWare来实现联调。

    http://www.cnblogs.com/mydomain/archive/2010/10/14/1851681.html

    设置断点: bp 函数名/地址名

    清除断点: bc [1|*] //1表示1号断点。对于没有加载符号表的驱动程序,可以使用延迟设置断点:bu.

    符号表设置:重新加载(.reload,列出当前所有断点(.lm,手动加载符号表(.ld

    5、其它调试软件

    IRPTrace 专业调试IRP

    BusHound 调试USB

    Device Tree,DbgView

     

    附:虚拟机与宿主机实现文件共享

    Install VMWare Tools

    工程中,属性,选项,ADD,网络共享。

    \\.host\ 就可以访问。

     

     

  • 相关阅读:
    第七届蓝桥杯JavaA组省赛真题
    第七届蓝桥杯JavaA组省赛真题
    第七届蓝桥杯JavaA组省赛真题
    第七届蓝桥杯JavaA组省赛真题
    Qt自定义model
    Qt Model/View(官方翻译,图文并茂)
    ddd
    java整合spring和hadoop HDFS
    hadoop-2.7.3 在windows环境下安装(无需Cygwin)
    Web Api 自动生成帮助文档
  • 原文地址:https://www.cnblogs.com/mydomain/p/1905081.html
Copyright © 2011-2022 走看看