基本规则:

只有debug mode enable的机器,产生的dump file才会保存dbgprint的buffer。

默认!dbgprint的buffer size是4k.

增加buffer size:

...\Windows Kits\8.1\Debuggers\x86\kdbgctrl.exe

比如设成 1M大小,kdbgctrl.exe -sdb 0x100000

设置每次重启之后都会失效,所以重启后都需要敲这个命令.

Take care:

当我把buffer设置成0x100000(1M)之后,!dbgprint却只能显示20KB左右的ascii的打印.

这应该是!dbgprint的bug,剩余的部分没能打出来,但实际上是在dump file里面的.

Then 怎么去拿全部的buffer?

0: kd> x nt!kdprint*
fffff802`758a1a18 nt!KdPrintWritePointer = <no type information>
fffff802`758e05e0 nt!KdPrintRolloverCount = <no type information>
fffff802`758e05f0 nt!KdPrintDefaultCircularBuffer = <no type information>
fffff802`758a1a10 nt!KdPrintCircularBuffer = <no type information>
fffff802`758f06c0 nt!KdPrintBufferChanges = <no type information>
fffff802`758a1a08 nt!KdPrintBufferSize = <no type information>

dd fffff802`758a1a10   (nt!KdPrintCircularBuffer),得到的就是buffer的start address

从这里开始,大小为nt!KdPrintBufferSize,就是buffer的区域.

nt!KdPrintWritePointer是当前printk 写buffer的指针.

Notice:

这个buffer是cyclic的,根据KdPrintWritePointer来决定buffer的起始位置:)

about !dbgprint to analyze BSOD dump file.的更多相关文章

  1. Debug Dump file

    dump file is a snapshot of the processs memeory. to debug it, we need use its corresponding executiv ...

  2. Debug program crash with dump file.

    1. Task manager, -> find the process for the program which crashed. 2. Right click the process -& ...

  3. How to Create Dump File for Applications

    使用WinDBG这个工具,可以在应用程序异常终止或者无响应时获取它的尸体,以用来解剖研究. Creating Dump File      在Vista环境中抓取Dump文件很方便,在task man ...

  4. Linux core dump file详解

    Linux core dump file详解 http://www.cnblogs.com/langqi250/archive/2013/03/05/2944931.html

  5. ORA-39142: incompatible version number 5.1 in dump file

    ORA-39142: incompatible version number 5.1 in dump file http://blog.itpub.net/26664718/viewspace-214 ...

  6. ORA-39095: Dump file space has been exhausted

    ORA-39095: Dump file space has been exhausted Table of Contents 1. 简述 2. 错误信息 3. 分析 4. 解决 5. 扩展 1 简述 ...

  7. Using pg_dump restore dump file on Odoo

    pg_restore -C -d postgres db.dump

  8. executing in nfs will not generate core dump file

    最近遇到了一个奇怪的问题. linux系统的pc搭建nfs server,开发板作为nfs client,开发板中全程root权限操作,执行的程序放到 nfs server 中 exports 出的目 ...

  9. Modify MySQL dump file the fatest way

    使用mysql命令导入mysqldump生成的sql文件时,为了提高导入速度,往往需要修改dump文件,但是面对一个几十GB的文件,这事儿就太崩溃了,最快速的方法是这么做: ( echo " ...

随机推荐

  1. 【2018 CCPC网络赛 1004】Find Integer(勾股数+费马大定理)

    Problem Description people in USSS love math very much, and there is a famous math problem . give yo ...

  2. vsftpd文件服务参数汇总和虚拟用户使用

    FTP文件传输协议 FTP协议特点 基于C/S结构 双通道协议:数据和命令连接 数据传输格式:二进制(默认)和文本(w文本格式会修改文件内容) 两种模式:服务器角度 主动(PORT style):服务 ...

  3. 【解决】MongoDB 线上业务处理,数据去重脚本实现

    mongo客户端工具下载  https://robomongo.org/download   线上业务,k线 展示出现问题,相同时间戳的数据多次插入导致数据不真实,后经排查发现是每次都是写的四条数据, ...

  4. 利用nginx使ftp可以通过http访问

    ./nginx 启动服务./nginx -s stop 关闭服务./nginx -s reload 重新加载配置文件 搭建nginx映射ftp服务:打开nginx的配置文件nginx.conf(位于n ...

  5. python入门——Anaconda安装

    初学Python,可以选择python原始的IDE,但原始的IDE在使用过程中需要自己安装各种包,个人觉得初学者不需要将时间花在这些上面,而是应该直接学习python程序,这些比较杂的事情可以在以后的 ...

  6. HyperLedger Fabric 1.4 超级账本项目(5.4)

    超级账本(Hyperledger)项目分框架类和工具类两种项目,框架类有Hyperledger Burrow.Hyperledger Fabric.Hyperledger Indy.Hyperledg ...

  7. 数据库 MySQL part1

    数据库介绍 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据库中的数据按一定的数学模型组织.描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种 ...

  8. c/c++指针传参

    首先要理解参数传递,参数传递分值传递,指针传递,引用传递.(就我自己理解,就是把实参对形参进行赋值) 值传递: 形参是实参的拷贝,改变形参的值并不会影响外部实参的值.从被调用函数的角度来说,值传递是单 ...

  9. 9 udp广播

    udp有广播  写信 tcp没有广播·  打电话 #coding=utf-8 import socket, sys dest = ('<broadcast>', 7788) # 创建udp ...

  10. Hibernate-ORM:06.Hibernate中三种状态

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客主要叙述Hibernate中的三种状态:临时状态(瞬时状态),持久状态,游离状态 commit和flu ...