Plasma Engine  2.0
Loading...
Searching...
No Matches
MiniDumpUtils.h
1#pragma once
2
3#include <Foundation/Basics.h>
4
5#include <Foundation/Basics/Platform/Win/MinWindows.h>
6#include <Foundation/Types/Status.h>
7
8#if PL_ENABLED(PL_PLATFORM_WINDOWS)
9extern "C"
10{
11 struct _EXCEPTION_POINTERS;
12}
13#endif
14
16struct PL_FOUNDATION_DLL plMiniDumpUtils
17{
18
20 enum class plDumpType
21 {
22 Auto,
23 MiniDump,
24 MiniDumpWithFullMemory
25 };
26
30 static plStatus WriteExternalProcessMiniDump(plStringView sDumpFile, plUInt32 uiProcessID, plDumpType dumpTypeOverride = plDumpType::Auto);
31
35 static plStatus LaunchMiniDumpTool(plStringView sDumpFile, plDumpType dumpTypeOverride = plDumpType::Auto);
36
37#if PL_ENABLED(PL_PLATFORM_WINDOWS_DESKTOP)
41 static plStatus WriteOwnProcessMiniDump(plStringView sDumpFile, struct _EXCEPTION_POINTERS* pExceptionInfo, plDumpType dumpTypeOverride = plDumpType::Auto);
42
44 static plMinWindows::HANDLE GetProcessHandleWithNecessaryRights(plUInt32 uiProcessID);
45
49 static plStatus WriteExternalProcessMiniDump(plStringView sDumpFile, plUInt32 uiProcessID, plMinWindows::HANDLE hProcess, plDumpType dumpTypeOverride = plDumpType::Auto);
50
54 static plStatus WriteProcessMiniDump(plStringView sDumpFile, plUInt32 uiProcessID, plMinWindows::HANDLE hProcess, struct _EXCEPTION_POINTERS* pExceptionInfo, plDumpType dumpTypeOverrideType = plDumpType::Auto);
55
56#endif
57};
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
Functionality for writing process mini-dumps (callstacks, memory snapshots, etc)
Definition MiniDumpUtils.h:17
plDumpType
Specifies the dump mode that is written.
Definition MiniDumpUtils.h:21
An plResult with an additional message for the reason of failure.
Definition Status.h:12