VC使用dump
来源:互联网 发布:网络共享用户账户限制 编辑:程序博客网 时间:2024/05/29 12:44
/********************************************************************
函数名称 : GetExeDir
函数描述 : 获取可执行程序exe文件所在的目录
输入参数 : N/A
输出参数 : N/A
返回值 : 返回可执行程序exe文件所在的目录
备注 : N/A
*********************************************************************/
CString GetExeDir()
{
CString strExeDir;
WCHAR wszPath[MAX_PATH] = {0};
(void)GetModuleFileNameW(NULL, wszPath, _MAX_PATH);
WCHAR *lastslash = wcsrchr(wszPath, L'\\');
int len = (int)(lastslash - wszPath);
WCHAR wszTemp[MAX_PATH];
int i=0;
for (;i<len;i++)
{
wszTemp[i] = wszPath[i];
}
wszTemp[i] = '\0';
while (len > 0 && wszTemp[len-1] == L'\\')
{
len--;
}
strExeDir.Format(_TEXT("%s"),wszTemp);
return strExeDir;
}
//xxxapp.cpp文件
#include <DbgHelp.h>
#pragma comment(lib, "Dbghelp.lib")
LONG WINAPI ProcessException(struct _EXCEPTION_POINTERS* pExceptionInfo)
{
CString wsDumpFilePath = GetExeDir()+_T("\\DumpFile.dmp");
HANDLE hDumpFile = CreateFileW(wsDumpFilePath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL ,NULL);
if (hDumpFile)
{
MINIDUMP_EXCEPTION_INFORMATION loExceptionInfo;
loExceptionInfo.ExceptionPointers = pExceptionInfo;
loExceptionInfo.ThreadId = GetCurrentThreadId();
loExceptionInfo.ClientPointers = TRUE;
MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpNormal, &loExceptionInfo, NULL, NULL);
CloseHandle(hDumpFile);
}
return EXCEPTION_CONTINUE_SEARCH;
}
CWinApp::InitInstance();
SetUnhandledExceptionFilter(ProcessException); // 用于自动产生程序异常跟踪定位文件(.dump)
AfxEnableControlContainer();
- VC使用dump
- VC++程序调试debug dump
- VC++生成full dump文件
- 使用JMAP dump及分析dump文件
- 使用JMAP dump及分析dump文件
- 使用JMAP dump及分析dump文件
- 使用JMAP dump及分析dump文件
- 使用JMAP dump及分析dump文件
- 使用JMAP dump及分析dump文件
- 使用JMAP dump及分析dump文件
- 使用JMAP dump及分析dump文件
- 使用JMAP dump及分析dump文件
- 使用JMAP dump及分析dump文件
- 使用JMAP dump及分析dump文件
- 怎样使用core dump
- mysql dump的使用
- mysql dump 命令使用
- linux core dump使用
- mysql数据库开发规范
- 解决Android NDK: Host 'awk' tool is outdated. Please define HOST_AWK to point to Gawk or Nawk !
- SWOT分析与生涯规划
- centos设置静态IP
- 防止内存泄露 Linux下用Valgrind做检查
- VC使用dump
- javascript的urlencode
- JAVA 之 Date常用方法
- 微信之父张小龙:产品之上的世界观
- seekg()/seekp()与tellg()/tellp()的用法详解 .
- sql 行转列、列转行写法 面试用
- C/C++中的序点
- DataGridView的DataGridViewCheckBoxColumn使用方法
- VC unicode编程