Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 벡터
- Cell Shader
- 개인 바이트
- Toon Shader
- Specular
- Windows Build
- ColorGradingLutPass
- 게임 수학
- 가상 바이트
- Cell Look
- Private Bytes
- VR
- 작업 집합
- Virtual Byte
- Cartoon Rendering
- C언어
- AppSW
- 프로그래밍 기초
- URP로 변경
- 메모리 누수
- URP
- Three(Two) Tone Shading
- ASW(Application SpaceWarp)
- working set
- Rim Light
- OculusMotionVectorPass
- 3d
Archives
- Today
- Total
WinCNT
Exception Filter 본문
참고 사이트)
Exception Filter의 예제 코드
#include <Windows.h>
#include <tchar.h>
#include "dbghelp.h"
#pragma comment(lib, "Dbghelp.lib")
LONG WINAPI MyExceptionFilter(struct _EXCEPTION_POINTERS* pExceptionInfo);
int main()
{
// 함수 포인터를 등록해준는 함수
SetUnhandledExceptionFilter(MyExceptionFilter);
// 예외를 발생 시키는 코드
int* pInt = nullptr;
int n = *pInt;
}
LONG WINAPI MyExceptionFilter(struct _EXCEPTION_POINTERS* pExceptionInfo)
{
// test.dmp라는 파일을 만들 것
HANDLE hFile = CreateFile(_T("test.dmp"), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
// 밑의 구조체를 서술한다
MINIDUMP_EXCEPTION_INFORMATION stExceptionParam;
stExceptionParam.ThreadId = GetCurrentThreadId(); // GetCurrentThreadId()가 쓰인다
stExceptionParam.ExceptionPointers = pExceptionInfo;
stExceptionParam.ClientPointers = FALSE;
//
MiniDumpWriteDump(
GetCurrentProcess(), // 현재 프로세스의 핸들(슈도 핸들)
GetCurrentProcessId(), // 현재 프로세스의 ID
hFile,
MiniDumpWithFullMemory,
&stExceptionParam,
NULL, NULL
);
CloseHandle(hFile);
return EXCEPTION_EXECUTE_HANDLER;
}
SSS
'게임 프로그래밍(학습 내용 정리) > 시스템 프로그래밍' 카테고리의 다른 글
윈도우OS의 시간 측정 함수 조사 (0) | 2022.03.28 |
---|---|
스레드 스케줄링 (0) | 2022.03.28 |
실제 핸들과 허위 핸들(Pseudo Handle) (0) | 2022.03.22 |
프로세스와 스레드 (0) | 2022.03.21 |
커널 오브젝트와 프로세스 (0) | 2022.03.14 |