windows程序中生成崩溃转储文件(.dmp)

别再让崩溃日志成谜!手把手教你用Visual Studio 2022分析DMP文件,精准定位Windows程序闪退 本文详细介绍了如何使用Visual Studio 2022分析Windows程序崩溃时生成的DMP文件,帮助开发者精准定位程序闪退问题。从准备工作到高级调试技巧,再到典型崩溃场景的解决方案,手把手教你构建完善的崩溃分析体系,提升排错效率。 阅读详情

提供给用户使用的程序如果崩溃,如果能生成相应的转储文件,那么很容易定位出错原因

对于自己编写的win32程序,可以如下编写

__try

{

逻辑代码

...

}

__exception(ExceptionHandler(GetExceptionInformation()))

{

//log info

//::ExitProcess();

}

ExceptionHandler里面进行转储文件生成

unsigned long ExceptionHandler(LPEXCEPTION_POINTERS pExceptionPointers)

{

char szFile[MAX_PATH];

sprintf(szFile, "mydmp%d.dmp", exe_version); // 记录程序版本

HANDLE hDmpFile = ::CreateFile(szFile, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_WRITE|FILE_SHARE_READ, 0, CREATE_ALWAYS, 0, 0)

MINIDUMP_EXEPTION_INFORMATION stInfo = {0};

stInfo.ThreadId = GetCurrentThreadId();

stInfo.ExceptionPointers = pExceptionPointers;

stInfo.ClientPointers = TRUE;

BOOL bOk = MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpNormal, &stInfo, NULL, NULL);

if(!bOK)

   //logInfo


对于MFC程序,可以在程序初始化的时候,比如App::Instance()函数中,设置未处理异常处理函数:

LPTOP_LEVEL_EXCEPTION_FILTER __hTopLevelExceptionFilter; // 全局变量

__hTopLevelExceptionFilter = ::SetUnhandledExcewptionFilter(TopLevelExceptionHandler);

TopLevelExceptionHandler与ExceptionHandler处理方式类似


如果客户程序崩溃了,将收到的*.dmp文件与程序以及相应的符号文件放到一个目录中,直接用vs打开即可跟踪到出问题的位置




C++程序崩溃分析实战:利用dmp文件精准定位内存访问违规与堆损坏问题 在软件开发和运维中,程序崩溃是常见且棘手的问题,尤其是对于C++这类贴近系统底层的语言,内存访问越界、空指针解引用等错误往往难以复现和定位。其核心原理在于,当程序异常终止时,操作系统可以生成内存转储文件(dmp文件),它本质上是进程崩溃瞬间内存空间的一个完整快照,记录了线程堆栈、寄存器状态和内存数据。这项技术的核心价值在于,它不依赖于预设的日志,而是直接提供崩溃现场的“法医证据”,使得开发者能从被动的猜测转变为主动的精准分析。在应用场景上,无论是线上服务器偶发的堆损坏,还是多线程环境下的复杂死锁,dmp文件 阅读详情

相关推荐

别再抓瞎了!手把手教你用Visual Studio 2022分析Windows程序崩溃DMP文件(附PDB配置全流程)

本文详细介绍了如何使用Visual Studio 2022分析Windows程序崩溃DMP文件的全流程,包括PDB文件配置、符号路径设置及高级调试技巧。通过实战案例和最佳实践,帮助开发者快速定位和解决程序崩溃问题,提升调试效率。

weixin_30291791的博客 229

Windows平台崩溃转储系统crashrpt的使用

windows平台崩溃转储系统CashRpt介绍

nwhasd的博客 1万+

Qt qBreakpad使用

环境:Windows10 qtcreator5.14 Debugging Tools for Windows(X64+X86) 源码:qBreakpad

qq_16377055的博客 1814

重新安装SecureCRT报错

找到路径计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\。请提交个bug报告给VanDyke Software, Inc.的技术支持,SecureCRT遇到一个致命的错误且必须关闭。(此信息的内容可以通过CTRL+C复制。你将收到如何发送崩溃转储文件的说明。win+r快捷键:输入regedit。在这里面将VanDyke删除。并且已包含在bug报告中。

qq_46537100的博客 1417

从生成到解析:实战指南:利用DMP文件精准定位Windows程序崩溃

本文详细介绍了如何利用DMP文件精准定位Windows程序崩溃问题。从生成DMP文件的三种实战方法(代码集成、任务管理器、ADPlus)到使用WinDbg进行高级分析,提供了完整的解决方案。特别适合开发人员处理难以复现的崩溃问题,提升调试效率。

weixin_30561177的博客 349

windows 应用程序崩溃时的内存转储及dump文件的分析

windows 应用程序崩溃时的内存转储及dump文件的分析

securecrt遇到一个致命的错误且必须关闭问题解决

securecrt遇到一个致命的错误且必须关闭问题解决 一个崩溃转储文件已创建于: C:***\secureCRT.dmp 1.将对应崩溃转储文件进行删除 2.打开cmd->输入regedit打开注册表 搜索 VanDyke的项全部删除即可。我是win764位的HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\下有个vandyke项删了就能启动了 ...

weixin_42599429的博客 2605

使用PackStack工具自动化部署OpenStack

搭建 OpenStack 环境,每个组件的安装和配置都需要熟悉其特定的依赖关系、参数设置等,对于初学者来说容易出错。PackStack 工具通过集成一系列脚本和配置文件,便于快速搭建OpenStack练习环境。CPU:支持 Intel VT - x 或 AMD - V 硬件虚拟化技术,并且要在 BIOS 里开启此功能。内存:16GB以上存储:200GB以上可用空间(2)VMware WorkStation16.0以上版本(3)远程连接工具(如Xshell、MobaXterm)

2301_80440447的博客 4094

“SecureCRT遇到一个致命的错误且必须关闭”处理办法

打开SecureCRT时报错:SecureCRT遇到一个致命的错误且发须关闭。一个崩溃转储文件已创建于... 解决办法是,如下在cmd中输入regedit回车打开注册表编缉器 展开HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ 找到包含“VanDyke”字眼的那些文件夹(有时只有VanDyke一个有时有几个)在其上点击右键选择全删掉,然后重新双击启...

weixin_43818597的博客 3660

超10万,两台Mac Studio在家就能跑满血DeepSeek,网友:这是性价比最高的大模型一体机

在AI计算领域,没有比这更强的个人电脑了。这要从它的架构说起。对于那些有本地部署满血版DeepSeek需求的用户,目前建议的配置是选购512GB统一内存 + 1TB SSD,搭载M3 Ultra芯片的Mac Studio,官网售价74249元,可以叠加国补、教育优惠、12期分期等,这可能是目前门槛最低、性价比最高的满血版DeepSeek本地部署方案。对于企业而言,尽管Mac Studio确实可以部署6000亿参数的大模型,但在内存带宽、模型精调服务等方面,跟专用的大模型一体机仍有差距,采购需要谨慎评估。

2501_90444774的博客 1918

ADS 2024实战:手把手教你搞定CGH40010F的Doherty功放仿真与版图(附避坑指南)

本文详细介绍了使用ADS 2024进行CGH40010F Doherty功放从仿真到版图的全流程设计,涵盖器件建模、稳定性分析、负载牵引匹配和版图联合仿真等关键步骤。特别针对新手常见问题提供避坑指南,帮助工程师高效完成射频功放设计,提升5G基站和雷达系统的性能。

weixin_42528191的博客 221

如何在windows中配置自动生成崩溃文件(.dmp)

如何在windows中配置自动生成崩溃文件(.dmp)

邓校长的编程课堂专栏 2217

Java 实现 MP3 音频合并工具类:摆脱 FFmpeg,高效低 CPU 的纯本地方案【需求已解决】

本方案充分发挥了 Java 音频 SPI 的潜力,实现了轻量、跨平台、低 CPU 消耗的 MP3 音频合并工具类。 对于希望在服务器或桌面应用中集成音频处理功能的开发者而言,这无疑是一个可行且优雅的解决方案。

一键难忘的博客 544

发布版程序崩溃了怎么办?保姆级教程:为你的Qt/Win32程序集成自动生成DMP文件功能

本文详细介绍了如何为Qt/Win32程序集成自动生成DMP文件功能,解决发布版程序崩溃问题。通过解析Windows异常处理机制、Qt项目配置要点及完整的DMP生成实现,帮助开发者构建企业级崩溃诊断体系,有效捕获和分析程序异常崩溃信息。

weixin_42525005的博客 230

ABAP CDS View 从入门到精通教程第一篇:ABAP CDS View 在 SAP 技术体系中的重要地位

摘要:本文介绍了SAP开发技术专家提供的多套SAP开发教程,涵盖ABAP、UI5、Fiori、OData、BTP等技术领域。重点阐述了ABAP CDS View在SAP S/4HANA中的核心地位,作为虚拟数据模型(VDM)的关键技术,它实现了OLTP和OLAP的统一处理。文章还说明了学习CDS View的前置条件,包括需要SAP NetWeaver 7.50 SP01或更高版本系统,以及使用SAP ABAP Development Tool进行开发实践。作者具有16年SAP开发经验,这些教程形成了完整的S

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 899

clock min pulse width检查

高电平脉宽 = clock fall edge到达FF/CK的时间 - clock rise edge到达FF/CK的时间;低电平脉宽 = 下一T clock rise edge到达FF/CK的时间 - clock fall edge到达FF/CK的时间。而required pulse width是根据FF/CK处的transition,根据查找表计算得到的。为什么clock transition越大,会导致required pulse width越大呢?5、 降低clock上的串扰。

芯冰乐 578

Windows程序崩溃现场重建:巧用VS、DMP与PDB文件精准定位异常根源

本文详细解析了如何利用Visual Studio、DMP与PDB文件精准定位Windows程序异常崩溃的根源。通过实战案例和技巧分享,介绍了DMP文件生成方法、符号调试配置、高级调试场景分析以及自动化崩溃分析系统的搭建,帮助开发者高效解决程序崩溃问题。

weixin_30596023的博客 300

【python股票价格预测】基于LSTM(长短期记忆网络)的股票价格预测(附python代码)

【python股票价格预测】基于LSTM(长短期记忆网络)的股票价格预测(附python代码)

k8291121的博客 1012

别再让程序崩溃无迹可寻:手把手教你用C++代码生成DMP文件(附完整源码)

本文详细介绍了如何在C++开发中生成DMP文件以捕获程序崩溃信息,提供完整的源码实现和工程实践建议。通过Windows异常处理机制和MiniDump技术,开发者可以快速定位崩溃原因,解决用户环境中的疑难问题。文章还涵盖了PDB管理、服务程序特殊考量及高级调试技巧,帮助构建健壮的崩溃捕获系统。

weixin_30443747的博客 274

cursor AI代码编辑器IDE对接deepseek模型api;字节ai编辑器trae

参考: https://www.cursor.com/ https://platform.deepseek.com/https://www.cursor.com/下载安装后,注册账号登录即可 再高级里选择设置 再模型这注册模型: 模型名称一定要填正确,url地址填好,最后填上秘钥验证

weixin_42357472的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

QT应用编程: window下QT程序异常捕获并生成DMP文件、PDB文件

win10 64位QT5.12.6。

thanklife的专栏 2144

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

mfc 增加 dmp导出功能

#include <Windows.h> #include <DbgHelp.h> #pragma comment(lib,"DbgHelp.lib") //创建dump文件 void CreateDumpFile(CString lpstrDumpFilePathName, EXCEPTION_POINTERS* pException) { HANDLE hDumpFile = CreateFile(lpstrDumpFilePathName, GENERIC_WRITE.

瞬Future 367

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

windbg 进行调试

这里就是介绍下如何使用windbg,然后把几种常用的形式记录下,本人对于windbg的使用也是小白,所以只是简单的记录如下: 1.是程序没有响应,处于假死状态,一般情况下我们在windows下弄出个转存储文件,然后对dump进行分析,得到转存储文件的不走如下: 1.1 启动windows任务管理器,找到对应进程,然后鼠标右键,创建转储文件,然后得到DMP文件 1.2 打开windbg,然...

zhc的博客 437

使用windbg分析程序崩溃后附加windbg dump出来的dmp文件

在程序崩溃后附加windbg,.dump生成的dmp文件并不是直接保存着程序崩溃时的状况,而是保持着windows在做崩溃处理时的状况,因此此时的调用堆栈并不是崩溃时的调用堆栈。 下面是实际崩溃时的调用栈 下面是崩溃处理时的调用栈 两个调用栈中都有,对比一下可以猜测是__RtlUserTh...

chilu6000的博客 504

利用Windows自带的功能当程序崩溃时产生崩溃转储文件(dmp)

何志丹 以管理员身份 运行 :OpenDump.bat 其本质是写注册表。 运行后: 任何程序崩溃都会在C:\CrashDump 产生dmp文件(比较大,约50到200M)。 至少在Win7、Win10的电脑,Win10的平板上运行正确。 OpenDump.bat @echo off echo 正在启用Dump... reg add "HKEY_LOCAL_M

闻缺陷则喜何志丹 1万+

Windows上Qt程序生成pdb文件,并在exe崩溃时生成dmp文件,且由dmp查询崩溃原因

Qt在windows下dump文件bug溯源

joyopirate的博客 5155
上一篇: 学会放弃
下一篇: vs2008设置完系统窗口颜色以后自定义类白底
buck
博客等级 码龄14年 185粉丝 127原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值