日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何在程序中生成崩溃转储dump文件以及如何分析dump

發布時間:2025/3/21 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在程序中生成崩溃转储dump文件以及如何分析dump 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于更詳細的內容,如果有興趣,可以訪問下面的視頻

https://edu.csdn.net/course/detail/28915

?

程序崩潰的時候如何生成dump文件

話不多說,直接上代碼,下面的程序會崩潰,而且會在崩潰的時候在運行目錄生成dump文件。


#include "stdafx.h"
#include <Windows.h>
#include <Dbghelp.h>
#include <stdio.h>

LONG WINAPI handle_exception(LPEXCEPTION_POINTERS lpExceptionInfo);
void throw_exception_test()
{
?? ?throw 123;
}
void catch_test()
{
?? ?try
?? ?{
?? ??? ?throw_exception_test();
?? ?}
?? ?catch(...)
?? ?{
?? ??? ?printf("catch exception\n");
?? ?}
}
void exception_test()
{
?? ?try
?? ?{
?? ??? ?int x=0;
?? ??? ?int y = 10 / x;
?? ?}
?? ?catch(...)
?? ?{
?? ??? ?printf("exception occurred\n");
?? ?}

}
void crash_test()
{
?? ?try
?? ?{
?? ??? ?char* test = NULL;
?? ??? ?strcpy(test,"123");
?? ?}
?? ?catch(...)
?? ?{
?? ??? ?printf("exception\n");
?? ?}
}
int main(int argc, char *argv[])
{
??? SetUnhandledExceptionFilter(handle_exception);
??? //exception_test();
?? ?crash_test();
?? ?catch_test();
?? ?printf("quit\n");

??? return 0;
}
?
int GenerateMiniDump(PEXCEPTION_POINTERS exception_pointers)
{
??? TCHAR file_name[MAX_PATH] = {0};?? ?
??? SYSTEMTIME local_time;
??? GetLocalTime(&local_time);
??? sprintf(file_name,"section_9_crash-%04d%02d%02d-%02d%02d%02d.dmp",local_time.wYear, local_time.wMonth, local_time.wDay,
??????? local_time.wHour, local_time.wMinute, local_time.wSecond);
??? HANDLE h_dump_file = CreateFile(file_name, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_READ, 0, CREATE_ALWAYS, 0, 0);
??? if (INVALID_HANDLE_VALUE == h_dump_file)
??? {
??????? return EXCEPTION_CONTINUE_EXECUTION;
??? }
??? MINIDUMP_EXCEPTION_INFORMATION exception_information;
??? exception_information.ThreadId = GetCurrentThreadId();
??? exception_information.ExceptionPointers = exception_pointers;
??? exception_information.ClientPointers = FALSE;
?? ?//MiniDumpNormal
?? ?//MiniDumpWithDataSegs
?? ?//MiniDumpWithFullMemory
??? MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(),
??????? h_dump_file, MiniDumpWithFullMemory, (exception_pointers ? &exception_information : NULL), NULL, NULL);
??? CloseHandle(h_dump_file);
??? return EXCEPTION_EXECUTE_HANDLER;
}
?
LONG WINAPI handle_exception(LPEXCEPTION_POINTERS lpExceptionInfo)
{
??? return GenerateMiniDump(lpExceptionInfo);
}

如何調試dump文件來定位崩潰

可以用Windbg,也可以用vc,用vc打開dump文件,如圖所示

然后定位bug,如圖所示:

?

?

關于更詳細的內容,如果有興趣,可以訪問下面的視頻

https://edu.csdn.net/course/detail/28915

?

?

?

總結

以上是生活随笔為你收集整理的如何在程序中生成崩溃转储dump文件以及如何分析dump的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美成人免费在线视频 | 久久亚洲网站 | 亚洲成人一区二区三区 | 欧美一区二区三区激情 | 国产成人无码一区二区在线播放 | 日本三级韩国三级三级a级中文 | 免费毛片一区二区三区久久久 | 国产主播啪啪 | 亚洲男人的天堂网站 | 国产免费一区二区三区最新6 | 午夜私人福利 | 日韩视频一区二区 | 色综合天天综合综合国产 | 国产精品视频观看 | 四虎国产成人永久精品免费 | 国产精品a久久久久 | 国产一在线观看 | 欧美猛操| 国产一级免费视频 | www精品视频 | 国产美女裸体无遮挡免费视频 | 国产色宗合 | 欧美日韩激情一区二区 | 黄黄的视频在线观看 | 天天搞夜夜 | 久草综合在线观看 | 人人妻人人澡人人爽 | 天天干夜夜干 | 黄色小毛片 | 精品产国自在拍 | 性欧美一区 | 一区二区中文字幕在线观看 | 最新中文字幕在线观看 | 日本精品99| 蜜桃久久久久久久 | 一级视频在线免费观看 | 蜜桃一区二区三区 | 久久网中文字幕 | 久久国产一区二区三区 | 中文字幕一区二区三区人妻电影 | 好大好爽视频 | 成人精品在线观看视频 | 色爱综合区 | japansexxxxhd医生 夜夜操导航 | 国产午夜在线视频 | www..99热| 青青草99 | 国产东北真实交换多p免视频 | 国产精品久久久久久久免费大片 | 奇米网7777| 欧美成人午夜77777 | 瑟瑟在线视频 | 男女啪啪十八 | 大伊人网 | 老师的肉丝玉足夹茎 | 国产三级久久 | 91视频播放器 | 欧美肥老妇| 成人羞羞国产免费 | 亚洲精品免费在线视频 | 操碰91| 欧美成人一二区 | 中文字幕av免费 | 青青青网| 在线永久看片免费的视频 | 国产区一区二区三区 | 国产夜色精品一区二区av | 91国内揄拍国内精品对白 | 婷婷六月激情 | 精品黑人| 丁香亚洲| 国产亚洲精品久久久久久久 | 人妻丰满熟妇av无码区 | 窝窝视频在线 | 精品国产制服丝袜高跟 | 亚洲一道本 | 亚洲涩网 | 久久久久久久九九九九 | 中国女人av | 青草视频在线免费观看 | 亚洲一区国产 | 亚洲少妇第一页 | 国产福利一区二区三区在线观看 | 亚洲少妇中文字幕 | 成人里番精品一区二区 | 超碰天天 | 亚洲av成人精品一区二区三区 | 久久久久久久国产视频 | 激情免费视频 | 91成人免费观看 | 精品丰满少妇一区二区三区 | 欧美成人免费在线观看视频 | 一个人免费在线观看视频 | 日韩欧美大陆 | 亚洲精品久久久乳夜夜欧美 | 女王人厕视频2ⅴk | 粉嫩视频在线观看 | 国产在线免费视频 | 国产福利一区二区视频 |