Mingw下GCC命令行编译程序

xingyun86 5小时前 8

Mingw下GCC命令行编译程序

gcc -o test main.c -g -ldbghelp

main.c

#include <windows.h>
#include <stdio.h>
#include <DbgHelp.h>
#pragma comment(lib,"DbgHelp")
static LONG __stdcall ApplicationCrashHandler(EXCEPTION_POINTERS *pException)
{
    // 创建Dump文件
    WCHAR wFilePath[4096]={0};
    GetModuleFileNameW(NULL,wFilePath, 4096);
    lstrcatW(wFilePath, L".dump");
    HANDLE hDumpFile = CreateFileW(wFilePath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    if (hDumpFile != INVALID_HANDLE_VALUE) {
        // Dump信息
        MINIDUMP_EXCEPTION_INFORMATION dumpInfo;
        dumpInfo.ExceptionPointers = pException;
        dumpInfo.ThreadId = GetCurrentThreadId();
        dumpInfo.ClientPointers = TRUE;
        // 写入Dump文件
        MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpNormal, &dumpInfo, NULL, NULL);
        CloseHandle(hDumpFile);
    }
    // 返回异常代码
    return EXCEPTION_EXECUTE_HANDLER;
}
int main()
{
    // 设置异常处理函数
    SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ApplicationCrashHandler);
    printf("Hello World!\n");
    getchar();
    int *p = NULL;
    p[1] = 123;
    return 0;
}


×
打赏作者
最新回复 (0)
查看全部
全部楼主
返回