CX Framework
Cross-platform C utility framework
Loading...
Searching...
No Matches
crash_private.h
1#pragma once
2
3#include "cx/container.h"
4#include "cx/debug/crash.h"
5#include "cx/thread/atomic.h"
6#include "cx/thread/mutex.h"
7#include "cx/utils.h"
8
9typedef struct CrashExtraMeta {
10 const char* name;
11 char* str;
12 int val;
13 bool version;
14} CrashExtraMeta;
15stDeclare(CrashExtraMeta);
16saDeclare(CrashExtraMeta);
17#define SType_CrashExtraMeta CrashExtraMeta*
18#define STStorageType_CrashExtraMeta CrashExtraMeta
19#define STypeArg_CrashExtraMeta(type, val) stgeneric(opaque, &(val))
20#define STypeArgPtr_CrashExtraMeta(type, val) &stgeneric(opaque, (val))
21#define STypeCheckedArg_CrashExtraMeta(type, val) stType(type), stArg(type, val)
22#define STypeCheckedPtrArg_CrashExtraMeta(type, val) stType(type), stArgPtr(type, val)
23
24typedef struct CrashMemRange {
25 uintptr start;
26 uintptr end;
27} CrashMemRange;
28stDeclare(CrashMemRange);
29saDeclare(CrashMemRange);
30#define SType_CrashMemRange CrashMemRange*
31#define STStorageType_CrashMemRange CrashMemRange
32#define STypeArg_CrashMemRange(type, val) stgeneric(opaque, &(val))
33#define STypeArgPtr_CrashMemRange(type, val) &stgeneric(opaque, (val))
34#define STypeCheckedArg_CrashMemRange(type, val) stType(type), stArg(type, val)
35#define STypeCheckedPtrArg_CrashMemRange(type, val) stType(type), stArgPtr(type, val)
36
37extern LazyInitState _dbgCrashInitState;
38extern atomic(uint32) _dbgCrashMode;
39extern sa_CrashExtraMeta _dbgCrashExtraMeta;
40extern sa_CrashMemRange _dbgCrashDumpMem;
41extern Mutex _dbgCrashMutex;
42
43void _dbgCrashInit(void* data);
44bool _dbgCrashPlatformInit();
45bool _dbgCrashTriggerCallbacks(bool after);
Atomic operations.
Generic type-safe containers with runtime type system integration.
Crash handler and dump generation.
#define saDeclare(name)
Definition sarray.h:93
#define stDeclare(name)
Definition stype.h:1908
Mutex synchronization primitive.
State tracker for lazy initialization.
Definition lazyinit.h:40
Definition mutex.h:60
Other miscellaneous utilities.