windbg专题

第三十二篇:Windbg中USB2.0调试环境的搭建

2011年的时候,为了开发USB Mass storage -- UASP (USB attached SCSI Protocol)的设备驱动程序,从米国买了两个USB2.0的调试小设备(如下图,每个似乎80美刀,贼贵的东西)。 主要是用来替代串口115200波特率的响应速度慢,以便解决调试效率的问题。 当时,根据WINDBG的HELP文档,而且也GOOGLE了一些网上的相关参考内容,硬

第三十一篇:!pci of WinDbg

刚刚在看WinDbg在硬件调试方面有哪些扩展命令的时候,让我回想起一个工作中的实际事务。 在xHCI USB3.0/3.1 IP项目开发过程中,需要得到类似实际产品的PCIe配置空间信息,以作对比参考。 当时的做法是,将类似产品的xHCI host controller通过PCIe口接到SoC系统中, 通过编写ARM SoC的Bare metal代码来读取每一个产口的PCIe配置空间。

第三十篇:Windbg的基础知识

Windbg是一个非常强大的工具. 刚刚开始,是为了替代SoftICE调试自己开发的AVStream/BDA驱动程序,以及分析由此驱动软件产生的Kernel Dump. 之后,参与xHCI USB3.0/3.1 IP的开发,Windbg主要用来分析该硬件产生的Kernel Dump. 第二篇:欲善其事,先利其器-USB3.0 Kernel debug extension 第五

VirtualKD 双机调试 Win10 无法弹出 Windbg 解决方法

虚拟机里 msconfig -> 引导 -> VirtualKD启动项 -> 高级选项 -> 调试端口,将 1394 改成 com1 感谢群友 @Neil_360 提供的解决方法   Windbg 无法接收打印的信息 进入注册表 在 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\ 路径下

windbg配置符号

转载:https://blog.csdn.net/nui111/article/details/51893019 安装与配置windbg的symbol(符号) 第一步 是从 http://www.microsoft.com/ddk/debugging 下载最新版本的 WinDBG, 因为符号服务器二进制文件是由 WinDBG 小组开发的。您将需要检查是否有 WinDBG 更新版本,因为该小

通过windbg查看dump文件中某个方法内的某个对象的变量的值

使用 WinDbg 和 SOS 扩展来查看 C# 应用程序生成的 dump 文件中某个方法中的某个对象的变量的值。以下是大致的步骤: 打开 WinDbg,并用它打开你的 dump 文件。你可以使用 File → Open Crash Dump 来实现。 在命令行中,加载 SOS 扩展。一般来说这可以通过 .loadby sos clr 来完成。如果这个不工作的话,你可能需要全路径来加载 SO

windbg - Getting Started with WinDBG - Part3

In this series of blog posts we’ve walked you through getting WinDBG installed, setup, and got you started by attaching to a process and setting breakpoints. Our next step is the actual debugging part

windbg - Getting Started with WinDBG - Part 2

This is a multipart series walking you through using WinDBG - we’ve gotten you off the ground with our last blog post, and now we’ll focus on it’s core functionality so that you can start debugging pr

windbg - Byakugan

1. Install Byakugan lab:bin/ $ pwd/home/someone/metasploit-framework/external/source/byakugan/binlab:bin/ $ tree.├── Vista│ ├── byakugan.dll│ ├── detoured.dll│ └── injectsu.dll├── Win7

windbg 调试

cdb.exe -srcpath  [source file path] -y [.pdb file path] -z [dump file] -lines -lines 用于加载对应的源文件位置

CLR探索应用程序域世界(上):Windbg SOS剖析揭示域世界

来源:lbq1221119  http://www.cnblogs.com/lbq1221119/archive/2007/12/12/992167.html 在CLR的世界中,有一系列的令人Amazing的技术和架构。其中,CLR对应用程序在内存中内存分配,执行模型,程序之间的交互等一系列的技术,值得每一个致力于DotNet平台的技术人员深究。编程人员在开发的过程中,如果把程序集的加载(As

没想到WinDBG的双机调试这么慢

今天用使用了一下WinDBG的双机内核调试,客户机是VPC上的XP SP2 。一个dt _eprocess命令居然用了近1分钟的时间,简直是太慢了,以前也略有耳闻,但没想到会这么离谱,有几次都出现假死了,似乎在XP上用LKD才是硬道理。 今天在Google中搜到了一点关于《失落的世界》的介绍,但已经不提供下载了,看了一下网友们贴的图片,感觉以 前应该看过电视或电影的,只是印象不深了,继续寻

VS 2013驱动开发 + Windbg + VM双机调试(亲测+详解)

VS 2013驱动开发 + Windbg + VM双机调试(亲测+详解) ------------VS 2013驱动开发 + Windbg + VM双机调试(亲测+详解)-------------       WIN10已上线,随之而来的是VS2015;微软在 “WDK7600” 以后就不再提供独立的内核驱动开发包了,而是必须首先安装微软集成开发环境VS,然后再从微软官网下载集成的WDK驱动

windbg解决程序CPU占用率高,内存占用时高时低现象

用windbg attach 该进程, Microsoft (R) Windows Debugger Version 6.11.0001.404 X86 Copyright (c) Microsoft Corporation. All rights reserved. *** wait with pending attach Symbol search path is: SRV*D:\

【Windbg】常用命令

概述 Windbg(Windows Debugger)是微软提供的强大的调试工具,用于在 Windows 操作系统上进行应用程序和内核级别的调试。它主要用于诊断和解决软件开发中的问题,包括崩溃、死锁、内存泄漏、性能问题等。 常用命令 序号命令描述1!analyze -v自动分析2!process 0 0列出所有进程信息

WinDBG+VMware调试内核 【虚拟机坏境下内核调试的安装和配置】

第一部分(步骤): 先统一名称,真实的操作系统叫HostOS,在VMware里虚拟的操作系统叫GuestOS。 1.在VMware里安装好GuestOS;下载WinDBG并安装好。 2.添加一个串口 在关闭GuestOS的情况下才能添加硬件。关闭虚拟机中系统,编辑虚拟机,添加COM设备。添加串口的过程如下:   选择“串行端口”,   选择“输出命名管道”,   其他如下设置

用WinDbg探索CLR世界[1] - 安装与环境配置

用WinDbg探索CLR世界[1] - 安装与环境配置 用WinDbg探索CLR世界[1] - 安装与环境配置 [url]http://www.blogcn.com/user8/flier_lu/index.html?id=1270368&run=.0D9CAA6[/url]     一直以来,我对CLR的分析都是基于MSDN、.NET Framework SDK自带文档和Rotor项目提

windbg cmd

windbg: .cls 清屏 bl 列取已下的断点,以及其状态 bc 取消断点 .bpcmds 简单列表显示断点 bp: 可以对地址(bp 0×1234567)以及符号(bp thApp!somefunction)下断点 bd/be 关闭断点/打开断点   d* 读取内存数据 da 显示Ascii码 db 显示字节和ascii码 dc 显示双字(4个字节)和Ascii码 dd 显示双字 d

WinDBG技巧:this指针的常见误区 (ECX寄存器存放this指针)

用Windbg 调试Win32程序的时候我们经常会输入命令 dt -b  this   来查看类的成员变量值。 Windbg 默认会用寄存器ECX 里面的值作为this 指针地址,然后打印出类里面的所有成员变量。 其实这样是有时候是错误的。虽然this指针多数时候都会被存在寄存器ECX, 有些C++编译器在做代码优化之后会把 this指针放在其他寄存器里面,比如ESI。 所以在调试的时候还需

Windbg 调试CPU占用过高

1.!runaway !runaway命令显示每个线程消费的时间 Bit 0 (0x1) 让调试器显示每个线程消耗的用户模式时间(user time),默认不加就是0x1 Bit 1 (0x2) 显示每个线程消耗的内核时间(kernel time)。 Bit 2 (0x4) 显示每个线程从创建开始经历了多少时间。 就是三者的组合:1 2 3 4 5 6 7 [cpp]  v

使用Windbg调试系统弹出的内存不可读错误

步骤: 1. 使用Windbg挂钩到崩溃的进程上面 2. 使用~*k列出所有线程 3. 搜索UnhandledExceptionFilter所在的线程 4. 使用~ns切换到上面崩溃所在的线程,n为线程前面的序号 5.使用kv显示线程调用堆栈 6,可以看到02af7740 7c83ab50 02af7768 7c839b39 02af7770 kernel32!UnhandledEx

WinDBG常用断点命令

WinDBG提供了多种设断点的命令: bp 命令是在某个地址 下断点, 可以 bp 0x7783FEB 也可以 bp MyApp!SomeFunction 。 对于后者,WinDBG 会自动找到MyApp!SomeFunction 对应的地址并设置断点。 但是使用bp的问题在于:1)当代码修改之后,函数地址改变,该断点仍然保持在相同位置,不一定继续有效; 2)WinDBG 不会把bp断点保存

Windbg inline HOOK 实战

使用PCHunter64的进程钩子扫描到某个进程被HOOK了,可以使用Windbg分析: ## 显示汇编指令 : u u 向下反汇编 ub 向上反汇编 uf 反汇编整个函数 a 写入汇编指令 搜索内存(search memory) s –[type] range pattern 其中type, b表示byte, w表示word, d 表示dword, a表示ASCII stri

Windows调试学习笔记:(二)WinDBG调试.NET程序示例

Windows调试学习笔记:(二)WinDBG调试.NET程序示例   好不容易把环境打好了,一定要试试牛刀。我创建了一个极其简单的程序(如下)。让我们期待会有好的结果吧,阿门!   using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleAp

使用Windbg动态调试目标程序去分析异常的两实战案例分享

目录 1、前言 2、案例1:程序退出时弹出报错提示框 2.1、问题说明 2.2、到系统应用程序日志中看系统有没有自动生成dump文件 2.3、将Windbg附加到目标程序上进行动态调试 3、案例2:程序在运行过程中弹出ASSERT断言提示框 3.1、问题说明 3.2、将Windbg附加到进程上调试 3.3、Windbg是如何找到pdb文件的? 4、使用Windbg静态分析dum

WinDbg 调试工具的使用

https://www.cnblogs.com/springyangwc/archive/2011/11/15/2249887.html