windbg常用命令

u命令可根据函数名字搜索函数(例子中是全名):
windbg常用命令_第1张图片
x命令类似(例子中有*号):
windbg常用命令_第2张图片

g :运行
q:结束调试会话,同时终止被调试进程的进行
.restart:重启被调试应用
version:显示调试器版本信息和已加载的调试器扩展
.time:显示系统记录的各种时间
.sympath 显示和设置符号搜索路径
.sympath+ 增加符号搜索路径
bl:列出所有断点
bc* 清除所有断点
bc 1 清除1号断点
bc 1 2 5 清除1号、2号、5号断点
be* 启用所有断点
be 1
be 1 2 5
bd*
bd1
bd 1 2 5
bp 0x7c801b00
bp ‘test.cpp:36’//在36行处放置一个断点
bp main//在main函数起始处放置一个断点
bp ‘ConsoleTest.cpp:40’ “j @eax = 0xa3 ‘’; ‘g’”//条件断点 寄存器eax的值为0xa3时断住
bm add_*//匹配add_开头的函数,并在这些函数起始地址处都打上断点
ba w4 0483dfe0//当对0483dfe0地址写操作时停下

#调试执行控制

gH//执行gH命令强制让调试器返回已经处理了这个异常。【Go with Exception Handled】
gN // 【Go with Exception Not Handled】
// 如果没有其他调试器也不处理,最后系统会弹出程序终止对话框。
gu//执行到当前函数完成时停下【go up】
p//单步执行
p 2//2为步进数目
pc//执行到下一个函数调用处停下【step to next call】
pa 7c888888//执行到…地址处停下
t //step into 【trace】
tc//执行到下一个进入点处停下【Trace to Next Call】
ta 7c801b12 // 执行到7c801b12地址处停下 【Trace to Adress】

#查看变量

dt nRet // 查看变量nRet的类型与值

dv // 显示当前函数内所有局部变量,函数参数

dv n* // 显示当前函数内n开头的所有局部变量,函数参数

dv /t /i /V /a|/n|/z

/*****************************************

更加详细地显示当前函数内所有局部变量,函数参数信息
i = type (local, global, parameter)
t = data type
V = memory address or register location

a = sort by Addr, n = sort by name, z = sort by size

*****************************************/

#调用堆栈

k // 显示当前调用堆栈

kn // 带栈编号显示当前调用堆栈

kb // 打印出前3个函数参数的当前调用堆栈

kb 5 // 只显示最上的5层调用堆栈

.frame // 显示当前栈帧

.frame n // 设置编号n的栈帧为当前栈帧

.frame /r n // 设置编号n的栈帧为当前栈帧 并显示寄存器变量

!uniqstack // 显示所有线程的调用堆栈

#寄存器

r // 显示所有寄存器信息

r eax, edx // 显示eax,edx寄存器信息

r eax=5, edx=6 // 对寄存器eax赋值为5,edx赋值为6

#内存

da /c 5 7c801e02 // 从7c801e02内存处开始,显示5个ascii字符

/*****************************************

d[a| u| b| w| W| d| c| q| f| D] [/c 列数] [地址]

a = ascii chars
u = Unicode chars
b = byte + ascii
w = word (2b)
W = word (2b) + ascii
d = dword (4b)
c = dword (4b) + ascii
q = qword (8b)
f = floating point (single precision - 4b)
D = floating point (double precision - 8b)

*****************************************/

dyb /c 3 7c801e02 // 从7c801e02内存处开始,显示3个byte及二进制

/*****************************************

dy[b | d] … // b = binary+byte d = binary+dword

*****************************************/

你可能感兴趣的:(windows,windbg)