用Adplus 和windbg 调试程序

本文介绍了一种在软件Release模式下捕捉和分析异常的有效方法。通过Adplus工具捕获dump文件,并利用Windbg进行深入分析,帮助开发者定位难以复现的问题所在。文中详细解释了如何配置Adplus的不同模式来捕获崩溃和死锁信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般程序在Debug的模式下发生异常和死锁,我们通过编译很容易找到问题。

但是在Release模式下呢,还有特定的环境下才出现的BUG我们怎么办呢?

1、在Debug模式下,建立和客户一样的环境,复现问题,通过调试能找到。前提条件:客户的环境研发人员可以搭建并且问题可以复现。

2、如果1不可行,我们通过写日志的方式或者输出信息到Debugview方式,来大概定位问题的位置。

 

还有一个更好的办法来抓取错误信息,并且定位错误位置,就是通过Adplus工具抓取dump文件,windbg进行分析。

Adplus工具在安装windbg后跟windbg.exe在同一目录下。

Adplus主要有2种模式捕获信息。一种是在程序出现崩溃crash时捕获,还有一种是程序出现死锁hang时捕获。

下面列举2个最简单的调试参数

分别对应的启动参数是:

adplus -crash -pn<进程名> -o  D:/dump 捕获进程崩溃crash信息,并把dump文件放入D:/dump文件夹中

adplus -hang -pn<进程名>  -o  D:/dump 捕获进程死锁hang信息,并把dump文件放入D:/dump文件夹中

 

提示:捕获crash时要先启动adplus,来捕获崩溃,否则程序都崩溃了也捕获不到了。

捕获hang时可以等到死锁出现时再运行adplus来捕获。

 

提取到dump文件后,通过windbg打开dump文件,分析堆栈就可以看到出错问题的位置了,最好可以把Pdb文件和source文件一起加入windbg就可以更一目了然了。

相关操作图片:

 

打开adplus设置

 

运行unittest崩溃后保存的dump文件

 

 

windbg分析的dump文件内容,查看堆栈情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值