C++软件添加dump调试打印日志
#include <DbgHelp.h>
#pragma comment(lib, "dbghelp.lib")
LONG WINAPI TopLevelExceptionFilter(struct _EXCEPTION_POINTERS *pExceptionInfo)
{
//cout << "Enter TopLevelExceptionFilter Function" << endl;
TCHAR szPath[MAX_PATH] = { 0 };
TCHAR szFileName[MAX_PATH] = { 0 };
TCHAR* szVersion = "v1.0";
TCHAR dwBufferSize = MAX_PATH;
SYSTEMTIME stLocalTime;
GetLocalTime(&stLocalTime);
CreateDirectory(szFileName, NULL);
StringCchPrintf(szFileName, MAX_PATH, "%s-%04d%02d%02d-%02d%02d%02d-%ld-%ld.dmp",
szVersion, stLocalTime.wYear, stLocalTime.wMonth, stLocalTime.wDay,
stLocalTime.wHour, stLocalTime.wMinute, stLocalTime.wSecond,
GetCurrentProcessId(), GetCurrentThreadId());
HANDLE hFile = CreateFile(szFileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
MINIDUMP_EXCEPTION_INFORMATION stExceptionParam;
stExceptionParam.ThreadId = GetCurrentThreadId();
stExceptionParam.ExceptionPointers = pExceptionInfo;
stExceptionParam.ClientPointers = FALSE;
MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpWithFullMemory, &stExceptionParam, NULL, NULL);
CloseHandle(hFile);
getchar();
return EXCEPTION_EXECUTE_HANDLER;
}
//-----------------------------------------------------------------------------------------
在程序最开始的地方调用这个函数
SetUnhandledExceptionFilter(TopLevelExceptionFilter);
C++软件添加dump调试打印日志的更多相关文章
- shell脚本调试打印日志问题
shell脚本调试打印日志问题 1. 需求 我们在编写脚本的时候,有时候需要做调试,便于我们定位问题,有时候等脚本上线之后,我们需要保留脚本执行过程中的记录.便于我们在出问题的时候,定位问题. 2. ...
- Android Studio中JNI程序的单步调试和日志打印
近日有个算法(检测碰撞)需要用C++实现,目的是IOS和ANDROID中共享同一段程序. 下面说说android调用这段程序过程中遇到的一些事情.(过程中网上搜索了一些相关文章,大部分说的是eclip ...
- Swift 中调试状态下打印日志
首先我们应该知道Swift中真个程序的入口就是在AppDelegate.swift中.所以在打印日志在 AppDelegate.swift中是这样的 import UIKit @UIApplicati ...
- vc/vs开发的应用程序添加dump崩溃日志<转>
原贴地址:https://blog.csdn.net/wangkui1331/article/details/78029940 vc/vs开发的应用程序出现崩溃的时候,由于没有任何记录,导致开发人员很 ...
- Visual Studio C++ MFC界面常用参数更改(改变图标,添加控件,调试打印函数等等)
背景 需要使用Visual Studio C++做一些界面.此篇文章既是记录Visual Studio C++在调整界面时常常遇见的问题. 正文 一.如何更改窗体图标,以及生成的.exe图标 更改窗体 ...
- 以打印日志为荣之logging模块详细使用
啄木鸟社区里的Pythonic八荣八耻有一条: 以打印日志为荣 , 以单步跟踪为耻; 很多程序都有记录日志的需求,并且日志中包含的信息既有正常的程序访问日志,还可能有错误.警告等信息输出,python ...
- 使用Line Pos Info 和 Modern C++ 改进打印日志记录
使用Line Pos Info 和 Modern C++ 改进打印日志记录 使用跟踪值:不管自己是多么的精通,可能仍然使用调试的主要方法之一 printf , TRaCE, outputDebugSt ...
- 天啦撸!打印日志竟然只晓得 Log4j?
空了的时候,我都会在群里偷偷摸摸地潜水,对小伙伴们的一举一动.一言一行筛查诊断.一副班主任的即时感,让我感到非常的快乐,略微夹带一丝丝的枯燥. 这不,我在战国时代读者群里发现了这么一串聊天记录: 竟然 ...
- Jenkins:参数化构建:分支|模块|回滚|打印日志
@ 目录 多分支 安装Git Parameter Plug-In 配置参数 选择构建分支 分模块 前提 分模块build 参数配置 分模块shell脚本 mvn 的基本用法 分模块运行 Jenkins ...
随机推荐
- td在relative模式下,IE9不显示border
方法一 .thisTd { background-clip: padding-box; position:relative; } 方法二 .thisTd { z-index=-1; ...
- linux下使用多线程编写的聊天室
自从开始学linux网络编程后就想写个聊天室,一开始原本打算用多进程的方式来写,可是发觉进程间的通信有点麻烦,而且开销也大,后来想用多线程能不能实现呢,于是便去看了一下linux里线程的用法,实际上只 ...
- svn patch
生成patch文件: svn diff > patchFile // 整个工程的变动生成patch 或svn diff file > patchFile // 某个文件单独变动的patch ...
- phalcon: 多模块多表查找,多表sql
那么多模块下,如何分页的,如果直接用->from(表名),报错找不到此类,此时要引用model类的全命名空间名称如下: $builder = $this->modelsManager-&g ...
- java.lang.Class<T> -- 反射机制
1反射机制是什么 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为jav ...
- windows 服务实例
参考来源:http://blog.csdn.net/morewindows/article/details/6858216 参考来源: http://hi.baidu.com/tfantasy/ite ...
- Python 小练习
输出标题以及长度 结果 输出网页下方学校地理位置以及 输出"abcdefg"base64编码 输出网页内容的MD5 hash
- JAVA09异常处理之动手动脑问题
动手动脑1:为什么不管是否有异常发生,finally语句块中的语句始终保证被执行? 我们在写代码时,如果finally块中的代码过多会导致字节码条数"膨胀",因为finally中的 ...
- bind_module和DEFAULT_MODULE
在入口文件中定义define('BIND_MODULE', 'Admin'); 默认就会去找Admin模块. 配置文件中的 'DEFAULT_MODULE' => 'Home', // 默认模块 ...
- vue的transition过渡效果
需要4个类: *-enter: 进入的开始状态, *-enter-active: 进入的结束状态, *-leave: 离开的开始状态, *-leave-active: 离开的结束状态 vue-rout ...