win7下自写驱动导致开机蓝屏调试过程
之前没有接触过驱动调试。这里上手就要解决一个因为某个自定义驱动导致的系统登陆后蓝屏问题,记录下来。
问题:
从客户那边弄来的一个虚拟机,已知是加了我们的驱动之后才会导致蓝屏。
解决过程:
使用windbg直接双机调试
开机登陆后会直接蓝屏,错误码是0x00000050。想要进入安全模式去移除驱动也进不去,会卡在某个驱动加载过程中。首要的就是进入系统去排查是哪个驱动有问题。还好是虚拟机,有如下方式可更改操作系统中内容。
,改完之后要在虚拟机射中的使用工具中断开相应映射。
注意:有些与具体设备相关的驱动,无法直接通过更改驱动名称来去掉驱动,因为注册表里填充了该驱动名,当系统启动时找不到驱动也会蓝屏。
通过windbg调试win7内核驱动,这里有篇比较好的博文有比较系统的介绍。http://www.cnblogs.com/mvperic/archive/2010/07/25/1784790.html
问题来了,按照别人教的在windbg里设置好符号路径和源代码路径,连是连上了,可以似乎总是到一半就断掉了。
完全不知道怎么回事啊。。。
于是请教了一下会的同事,还是没找到原因,然后用另一个相同的系统,发现是可以挂上的,所以配置方法没问题,没有找到解决方法,那么用windbg直接调试驱动这个方法暂时搁置了。
使用windbg分析dump文件
打开新的windbg窗口,设置好微软符号服务器srv*C:\symbolcache*http://msdl.microsoft.com/download/symbols;
以及自己的驱动pdb目录、自己驱动的源码路径,以及Image路径(即sys文件路径)。然后拖入dump文件,界面效果如下
,这时候手动敲入命令!Analyze -v,出现如下提示
,OK,已经在进行分析了,稍等片刻,还会有更详细的信息,最终是这样的效果
,按alt+6打开堆栈窗口,
如果这里面有自己的驱动函数的话,双击就会跳到源码中出问题的地方了。很像VS调试,我这里是后面截的图,所以没有我的驱动了。
win7下自写驱动导致开机蓝屏调试过程的更多相关文章
- AMD电脑装完Winsows10后开机蓝屏,报错代码:cdmsnroot_s.sys
背景:今天装了个WIN10,电脑配置:联想 IdeaPad Z485 : AMD A8处理器 .完成安装后电脑没有问题,安装了驱动程序后将 电脑用360 ...
- C# 串口导致电脑蓝屏一个可能的原因
在某些win7电脑上, 如果使用SerialPort对象的Read(byte[] buffer, int offset, int count)方法读取端口数据时, 若端口接受缓存区的数据少于count ...
- 【原创】驱动开发中Memory read error导致的蓝屏问题
最近在看着<windows驱动开发技术详解>这本书,模仿着敲了第七章中的模拟文件读写部分.在Debug过程中,蓝屏了好多次并出现了各种奇葩的问题.在调了快两天之后,问题终于解决了!现在在这 ...
- Ubuntu16.04开机蓝屏问题解决
写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...
- 解决联想笔记本 安装VM虚拟机后每次启动都会导致电脑蓝屏问题
现象描述: pc为联想笔记本 系统是微软家庭中文版,每次启动VM虚拟机都会出现蓝屏现象,出现错误代码system_service_exception 原因及解决方法: 对于Windows10家庭版 ...
- windbg蓝屏调试
一般在写Windows内核程序的时候,经常会出现蓝屏的问题,这个时候一般是采用记录下dump文件然后用windbg查看得方式,具体的过程就不说了,网上一大堆的内容.现在我主要记录自己当初按照网上的方案 ...
- win7下exe文件设置为开机启动
如何将自己的exe程序设置为开机自启动 如何将自己的exe程序设置为开机自启动 将自己的exe程序设置为开机自启动话不多说,直接看 首先1:cmd—>regedit 其次找到下面的路径就可以:( ...
- Arduino在64位WIN7下无法安装驱动的解决办法
1.获取权限 打开C:\Windows\System32\DriverStore\FileRepository,对着FileRepository文件夹,右键 >>属性 >>安全 ...
- [硬件配置]记录Ubuntu 14.04 下安装无线网卡驱动解决无法连接WiFi的过程
新电脑安装了Ubuntu 14.04,但是网络连接中只有以太网而没有WiFi的选项. 打开System Setting系统设置-Software&Updates软件&更新-Additi ...
随机推荐
- Jenkins+maven+git+sonar 系统持续集成&代码单測管理
Jenkins+maven+git+sonar 系统持续集成&代码单測管理 Jenkins的安装 Jenkins是基于Java开发的一种持续集成工具,用于监控持续反复的工作.功能包含: 1.持 ...
- Linux下几个常用的快捷键,真的很实用
1. [tab] 键 在linux所有的shell中,[tab]是最常用的也是linux的bash shell中最棒的功能:它具有命令补全和档案补全的功能.如果不使用[tab]键,那就别说自己懂li ...
- linux vim 个性化设置(.vimrc)
set sw=4 set ts=4 set et set smarttab set smartindent set lbr set fo+=mB set sm set ...
- Win10系统修改MAC地址
本地管理地址,输入想修改的MAC地址后,点确定即完成修改.在CMD窗口中,使用ipconfig 命令可以查看新的MAC地址. 再次钩选不存在,则还原为原来的MAC地址.
- OD: Heap Overflow (XP SP2 - 2003) & DWORD SHOOT via Chunk Resize
微软在堆中也增加了一些安全校验操作,使得原本是不容易的堆溢出变得困难重重: * PEB Random:在 Windows XP SP2 之后,微软不再使用固定的 PEB 基址 0x7FFDF000,而 ...
- ORACLE安装过程中检查步骤出现的错误和解决方法【转】
Checking operating system requirements ...Expected result: One of redhat-3,redhat-4,SuSE-9,asianux-1 ...
- JAVA-6-简单的模拟ATM使用
public static void main(String[] args) { in = new Scanner(System.in); int count = 1; int pwd = 11111 ...
- JavaScript 本地对象、内置对象、宿主对象
首先解释下宿主环境:一般宿主环境由外壳程序创建与维护,只要能提供js引擎执行的环境都可称之为外壳程序.如:web浏览器,一些桌面应用系统等.即由web浏览器或是这些桌面应用系统早就的环境即宿主环境. ...
- javascript sort()与reverse()
javascript 中提供了两个对数据进行排序的方法,即sort()和reverse() 在理解的时候犯了一个非常低级的错误,现记录如下: reverse()不包括排序的功能,只是把原来的数组反转. ...
- JavaScript forEach方法
最近看了一些html5和js方面的书,受益匪浅,因为看的东西比较多,却都没有怎么静心来做整理,慢慢来吧,可能最近自己有点儿小紧张.今天跟大家分享下JavaScript的forEach方法(其实是从&l ...