WinDebug的一些基本使用命令
查看当前线程的调用堆栈
kb
查看全部线程的调用堆栈
~*kb
显示分析的详细信息(通常使用此命令就可以看到调用堆栈,注意保存发布程序的pdb等文件)
!analyze -v
继续执行
g
查看线程详细信息,例如线程入口地址
~21 (数字代表线程id)
查看变量地址
x 变量名,可以用通配符
例如
x 05memcorrupt!g_*
用给定类型查看对象
dt 类型名 地址
例如
dt CAppInfo 0x00032cb0
查看给定地址的内容
dd 地址
例如
dd 0x72726443
以下都是看内容,显示的形式不同而已
dc
du
dds
dpp
dpa
dpu
查看当前指令
u eip
查看给定地址的代码内容
u 7c80540f
查看加载的全部模块的起始地址
lm
同时包含起始和结束的信息
------------------------------------------------------------
展开当前调用栈的内容
dd esp esp+100
注意这里要用正数,注意栈的生长方向
------------------------------------------------------------
查看给定代码地址对应的模块
ln 0100156a
-----------------------------------------------------
顺便提一下,我们不需要等到发生异常才能去调试一个进程。任何时候都可以通过运行vsjitdebugger.exe -p PID 来让调试器附着到任意进程,PID表示要调试的进程的ID.
事实上,Windows任务管理器使得调试进程更加容易,我们可以打开“进程”属性页,选择一个进程,并单击鼠标右键,然后选择“Debug”.
生成dump文件可以通过设置让系统在程序错误时生成,也可以手动生成dump文件
1、如何手动生成dump文件
程序崩溃(crash)的时候,可以使用WinDBG要把当时程序内存空间数据都保存下来,生成的文件称为dump 文件。
步骤:
1) 打开WinDBG并将之Attach 到crash的程序进程
2) 输入产生dump 文件的命令
WinDBG产生dump 文件的命令是 .dump ,可以选择不同的参数来生成不同类型的dump文件。
选项(1): /m
命令行示例:.dump /m C:\dumps\myapp.dmp
注解: 缺省选项,生成标准的minidump, 转储文件通常较小,便于在网络上通过邮件或其他方式传输。 这种文件的信息量较少,只包含系统信息、加载的模块(DLL)信息、 进程信息和线程信息。
选项(2): /ma
命令行示例:.dump /ma C:\dumps\myapp.dmp
注解: 带有尽量多选项的minidump(包括完整的内存内容、句柄、未加载的模块,等等),文件很大,但如果条件允许(本机调试,局域网环境), 推荐使用这中dump。
选项(3):/mFhutwd
命令行示例:.dump /mFhutwd C:\dumps\myapp.dmp
注解:带有数据段、非共享的读/写内存页和其他有用的信息的minidump。包含了通过minidump能够得到的最多的信息。是一种折中方案。
---------------------
作者:SurgePing
来源:CSDN
原文:https://blog.csdn.net/suxinpingtao51/article/details/11751997
版权声明:本文为博主原创文章,转载请附上博文链接!
WinDebug的一些基本使用命令相关推荐
- windebug常用命令
使用~查看所有线程 切换到一号线程:~1s 查看所有线程的托管堆栈 ~* e!clrstack 怎么查看,当前线程下,变量的信息? 对于托管代码而言,最核心的命令就是!do(dump object的 ...
- WinDebug 常用命令表【摘】
#调试命令窗口 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #重要说明 (1) windbg命令分为标准命令,元命令 ...
- 附上windebug常用调试命令
一.基础命令 程序重在编程思维,难在程序调试,写出了程序还不行,还必须进行调试,证明结果. WinDbg是微软开发的一款强大无比的调试器.利用它我们可以进行内核双机调试. 在调试程序之前我们要掌握如何 ...
- 双机调试和windbg的命令
各位大牛以及和我一样还是菜鸟的朋友们,大家好,今天在调试驱动程序时,由于要做双机调试,所以顺便再论坛发给以后需要的朋友,相对网上其他教程我的这个 算是比较详细了,因为我是看了网上很多相关文章,他们多多 ...
- 关于使用WinDebug查看线程死锁问题
最近项目接近尾声,不过项目到了测试的时候大问题来了,偶尔界面直接卡死以至于后续无法测试,初步怀疑是哪里死锁了,由于自己对WinDebug不是很熟悉,只知道WinDebug有查找内存泄露问题.线程死锁等 ...
- WinDebug dump
得到了DUMP文件,如何将其中的信息拿到呢?这就需要借助工具 WinDebug了,工具下载地址:http://www.microsoft.com/whdc/devtools/debugging/def ...
- 如何使用windebug追踪ASL CODE
最经遇到很多BSOD的问题,不免要学一下windebug的方法. 主要步骤如下: 在现代计算机中,硬件和固件(BIOS)都必须符合ACPI规范,以便操作系统可以控制所有模块的自动配置和电源管理. 使用 ...
- windebug windows 蓝屏工具
windebug 我是在HP工程师知道这个工具,推荐一下 ,以下来自http://jono48.blog.hexun.com/20636429_d.html 得到了DUMP文件,如何将其中的信息拿到呢 ...
- 使用VS的命令(devenv)编译C#项目
使用VS的命令(devenv)编译C#项目 简介 VS做为C#开发来说是非常棒的IDE工具,其功能的强大之处足以满足整个开发的要求,不过某些时候(比如考虑到要使用自动编译工具,对项目进行自动编译部署之 ...
最新文章
- Linux下vi编辑器命令精华版
- getRotationMatrix2D 函数
- A beginner’s guide to Cache synchronization strategies--转载
- mysql安装1335_Mysql 安装问题。提示MySQL Server 5.1 -- Error 1335.
- DeFi 借贷协议 NAOS Finance 完成种子轮融资
- linux大文件分包压缩和批量解压命令tar // tar 排除指定目录
- oracle把ascii吗,oracle中ascii函数及to_char函数使用及编码间的转换
- IOS 归档 即序列化与反序列化
- 小废物在我面前痛不欲生……(图)
- 【优化分配】基于matlab粒子群算法求解火车票分配优化问题【含Matlab源码 1137期】
- Android wear浏览器,手表浏览器下载-智能手表浏览器(Wear Internet Browser)下载 1.0beta1官方版_5577安卓网...
- 用ntsd -c q -p PID 杀进程
- matlab 正负数,matlab 开根号如何同时取到正负值
- android Intent调用地图应用客户端
- 读书笔记之吴伯凡·认知方法论
- Android安装软件的后缀,apk是什么文件,后缀是apk是什么文件
- 设置 CentOS linux Numlock默认开启
- 简易版扫雷(C语言实现)
- 短信通知接口json报文开发设计总结
- 关于互联网金融的安全、监管
热门文章
- python情绪分析的意义_如何用Python和R对故事情节做情绪分析?
- FPGA---Spartan6系列之GTP Transceiver
- 2023数学建模美赛赛题思路分析 2023美赛 美国大学生数学建模数模
- ueditor的微软雅黑字体的样式错误
- 使用计算机打印汉字文档是汉字(),浙江财经学院本科社会调查汇报撰写规范.doc...
- 解决pscad Gfortran编译问题
- ERDAS 2015 界面菜单目录介绍图
- 把url字符串转成url对象
- 过滤器Filter(非常非常重要)
- easypoi教程_easypoi导出Excel