Release版崩溃,用VS调试dump文件,定位代码出错行【VC++/Visual Studio】

WinDbg调试.dmp传送门(VC6示例):

https://download.csdn.net/download/maoyeahcom/11899305


本文是讲 用VS如何调试.dmp(比较高版本的VS,本文是vs2017):

人为制造一个崩溃,先直接看效果图:
在这里插入图片描述
下面是实现过程,本文是VS2017为例:
dump.h:

#pragma once
// dump.h
#include <windows.h>
extern LONG WINAPI ExceptionFilter(LPEXCEPTION_POINTERS lpExceptionInfo);

dump.cpp:

// dump.cpp
#include <stdio.h>
#include <windows.h>
#include <dbghelp.h>
#include <stdlib.h>
#include "pch.h" //这行看你工程设置,可以去掉

#pragma comment(lib, "Dbghelp.lib")

#include <DbgHelp.h>

//Creatte DUMP File
int GenerateMiniDump(HANDLE hFile, PEXCEPTION_POINTERS pExceptionPointers, PWCHAR pwAppName)
{
   
	BOOL bOwnDumpFile = FALSE;
	HANDLE hDumpFile = hFile;
	MINIDUMP_EXCEPTION_INFORMATION ExpParam;

	typedef BOOL(WINAPI * MiniDumpWriteDumpT)(
		HANDLE,
		DWORD,
		HANDLE,
		MINIDUMP_TYPE
  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows调试是一种通过分析崩溃时生成的dump文件定位错误和问题的过程。dump文件是操作系统在程序崩溃时自动创建的一种保存程序状态和信息的文件。 通过dump文件定位崩溃的过程可以分为以下几个步骤: 1. 获取dump文件:当程序崩溃时,操作系统会自动创建一个dump文件,通常保存在程序的运目录下。可以通过查看程序崩溃时的错误提示信息来确定dump文件的位置。 2. 安装符号文件:符号文件是包含程序源代码和编译器产生的调试信息的文件。在调试过程中,需要将符号文件dump文件关联起来,以便能够查看和分析代码。可以从官方网站下载对应本的符号文件。 3. 打开dump文件:可以使用调试工具(如Visual Studio、WinDbg等)打开dump文件。在打开文件后,工具会加载符号文件,显示出崩溃时的堆栈信息。 4. 分析堆栈信息:堆栈信息显示了程序在崩溃时的函数调用情况。从堆栈信息中,可以定位到导致崩溃的函数和代码所在的位置。通过查看源代码,可以进一步分析和解决错误。 5. 调试程序:在分析崩溃原因后,可以使用调试工具来逐步执程序,观察变量的值和执的过程,以便定位错误。可以设置断点、观察变量、修改变量的值等操作,帮助分析和解决问题。 通过以上步骤,我们可以利用dump文件Windows调试,快速定位程序崩溃的原因,并解决问题。调试过程需要了解一定的调试技巧和工具的使用方法,同时对于程序的结构和运过程有一定的了解,这样才能更好地定位和解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值