UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
syms_debug_info.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2/* date = April 6th 2021 10:18 am */
3
4#ifndef SYMS_DEBUG_INFO_H
5#define SYMS_DEBUG_INFO_H
6
8//~ allen: Generated Types
9
11
13//~ rjf: Binary Info Types
14
20
25
30
35
37//~ allen: Binary Imports & Exports
38
44
53
58
63
68
73
75//~ allen: Compilation Unit Types
76
78
83
91
96
101
103//~ allen: External File Types
104
108
113
118
124
126//~ allen: Line Info Types
127
129
135
140
147
152
153typedef struct SYMS_LineTable{
154 // sequence_index_array ranges from [0,sequence_count] inclusive so that:
155 // for-all i in [0,sequence_count):
156 // (sequence_index_array[i + 1] - sequence_index_array[i]) == # of lines in sequence i
159
163
169
171//~ allen: Type Info Types
172
173// TODO(allen): go to the mc file
174// TODO(allen): just yanked right from PDB
175// more interpretation should be applied to these name choices
204
211
213//~ allen: Symbol API Types
214
216
221
227
232
233// unit and symbol ID
238
243
249
254
258
263
264typedef struct SYMS_TypeInfo{
266
267 // 'mods' gives modifier information applied to this type after inferring the
268 // rest of it's structure. When (kind == SYMS_TypeKind_Modifier) this type symbol
269 // only exists to apply modifiers to another type symbol, but in certain cases a
270 // non-modifier type symbol contains it's own modifiers.
272
273 // 'reported_size_interp', & 'reported_size' together describe the size of the type.
276
277 // filled for any type that has definition location information.
279
280 // 'direct_type' meaning depends on kind.
281 // SYMS_TypeKind_Bitfield -> the underlying type of the bitfield
282 // SYMS_TypeKind_Enum -> the underlying type of the enum
283 // SYMS_TypeKind_Typedef -> the underlying type of the typedef
284 // SYMS_TypeKind_Modifier -> the modified type
285 // SYMS_TypeKind_Ptr -> the type pointed to
286 // SYMS_TypeKind_*Reference -> the type referenced
287 // SYMS_TypeKind_MemberPtr -> the type pointed to
288 // SYMS_TypeKind_Array -> the type of an element in the array
289 // SYMS_TypeKind_Proc -> the return type of the procedure
291
292 union{
293 // kind == SYMS_TypeKind_Proc
295 // kind == SYMS_TypeKind_MemberPtr
297 };
299
300typedef struct SYMS_ConstInfo{
301 // TODO(allen): look at more complex constants
305
317
319enum{
323};
324
333
340
345
350
352//~ allen: Location Types
353
355
360
365
370
376
381
383//~ allen: Link Name Types
384
389
394
396//~ allen: Nil For Accelerators
397
399
401//~ allen: Symbol Helper Functions
402
404
406
408
420
422
424
425#endif // SYMS_DEBUG_INFO_H
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition syms_debug_info.h:31
SYMS_BinInfo * bin_info
Definition syms_debug_info.h:32
SYMS_U64 count
Definition syms_debug_info.h:33
Definition syms_debug_info.h:26
SYMS_Arch arch
Definition syms_debug_info.h:27
SYMS_U64Range range
Definition syms_debug_info.h:28
Definition syms_debug_info.h:300
SYMS_U64 val
Definition syms_debug_info.h:303
SYMS_TypeKind kind
Definition syms_debug_info.h:302
Definition syms_debug_info.h:346
SYMS_EnumMember * enum_members
Definition syms_debug_info.h:347
SYMS_U64 count
Definition syms_debug_info.h:348
Definition syms_debug_info.h:341
SYMS_String8 name
Definition syms_debug_info.h:342
SYMS_U64 val
Definition syms_debug_info.h:343
Definition syms_debug_info.h:69
SYMS_Export * exports
Definition syms_debug_info.h:70
SYMS_U64 count
Definition syms_debug_info.h:71
Definition syms_debug_info.h:59
struct SYMS_ExportNode * next
Definition syms_debug_info.h:60
SYMS_Export data
Definition syms_debug_info.h:61
Definition syms_debug_info.h:45
SYMS_String8 name
Definition syms_debug_info.h:46
SYMS_String8 forwarder_library_name
Definition syms_debug_info.h:50
SYMS_U32 ordinal
Definition syms_debug_info.h:48
SYMS_String8 forwarder_import_name
Definition syms_debug_info.h:51
SYMS_U64 address
Definition syms_debug_info.h:47
SYMS_U32 unused_
Definition syms_debug_info.h:49
Definition syms_debug_info.h:119
SYMS_ExtFileNode * first
Definition syms_debug_info.h:120
SYMS_U64 node_count
Definition syms_debug_info.h:122
SYMS_ExtFileNode * last
Definition syms_debug_info.h:121
Definition syms_debug_info.h:114
SYMS_ExtFile ext_file
Definition syms_debug_info.h:116
struct SYMS_ExtFileNode * next
Definition syms_debug_info.h:115
Definition syms_debug_info.h:109
SYMS_String8 file_name
Definition syms_debug_info.h:110
SYMS_ExtMatchKey match_key
Definition syms_debug_info.h:111
Definition syms_debug_info.h:105
SYMS_U8 v[16]
Definition syms_debug_info.h:106
Definition syms_debug_info.h:148
SYMS_FileID * ids
Definition syms_debug_info.h:149
SYMS_U64 count
Definition syms_debug_info.h:150
Definition syms_debug_info.h:64
SYMS_Import * imports
Definition syms_debug_info.h:65
SYMS_U64 count
Definition syms_debug_info.h:66
Definition syms_debug_info.h:54
SYMS_Import data
Definition syms_debug_info.h:56
struct SYMS_ImportNode * next
Definition syms_debug_info.h:55
Definition syms_debug_info.h:39
SYMS_String8 name
Definition syms_debug_info.h:40
SYMS_String8 library_name
Definition syms_debug_info.h:41
SYMS_U16 ordinal
Definition syms_debug_info.h:42
Definition syms_debug_info.h:164
SYMS_String8Array file_table
Definition syms_debug_info.h:166
SYMS_FileIDArray file_id_array
Definition syms_debug_info.h:167
SYMS_LineTable line_table
Definition syms_debug_info.h:165
Definition syms_debug_info.h:153
SYMS_U64 line_count
Definition syms_debug_info.h:161
SYMS_Line * line_array
Definition syms_debug_info.h:160
SYMS_U64 * sequence_index_array
Definition syms_debug_info.h:157
SYMS_U64 sequence_count
Definition syms_debug_info.h:158
Definition syms_debug_info.h:136
SYMS_U64 voff
Definition syms_debug_info.h:138
SYMS_SrcCoord src_coord
Definition syms_debug_info.h:137
Definition syms_debug_info.h:390
SYMS_LinkNameRec * recs
Definition syms_debug_info.h:391
SYMS_U64 count
Definition syms_debug_info.h:392
Definition syms_debug_info.h:385
SYMS_String8 name
Definition syms_debug_info.h:386
SYMS_U64 voff
Definition syms_debug_info.h:387
Definition syms_debug_info.h:361
SYMS_LocRange * loc_ranges
Definition syms_debug_info.h:362
SYMS_U64 count
Definition syms_debug_info.h:363
Definition syms_debug_info.h:371
SYMS_U64 count
Definition syms_debug_info.h:374
SYMS_LocRangeNode * last
Definition syms_debug_info.h:373
SYMS_LocRangeNode * first
Definition syms_debug_info.h:372
Definition syms_debug_info.h:366
struct SYMS_LocRangeNode * next
Definition syms_debug_info.h:367
SYMS_LocRange loc_range
Definition syms_debug_info.h:368
Definition syms_debug_info.h:356
SYMS_LocID loc_id
Definition syms_debug_info.h:358
SYMS_U64Range vrange
Definition syms_debug_info.h:357
Definition syms_debug_info.h:325
SYMS_U32 off
Definition syms_debug_info.h:330
SYMS_U32 virtual_off
Definition syms_debug_info.h:331
SYMS_String8 name
Definition syms_debug_info.h:329
SYMS_MemFlags flags
Definition syms_debug_info.h:328
SYMS_MemVisibility visibility
Definition syms_debug_info.h:327
SYMS_MemKind kind
Definition syms_debug_info.h:326
Definition syms_debug_info.h:141
SYMS_U32 col
Definition syms_debug_info.h:144
SYMS_String8 file_name
Definition syms_debug_info.h:142
SYMS_U32 line
Definition syms_debug_info.h:143
SYMS_U64 voff
Definition syms_debug_info.h:145
Definition syms_debug_info.h:21
SYMS_U64 count
Definition syms_debug_info.h:23
SYMS_SecInfo * sec_info
Definition syms_debug_info.h:22
Definition syms_debug_info.h:15
SYMS_U64Range vrange
Definition syms_debug_info.h:17
SYMS_String8 name
Definition syms_debug_info.h:16
SYMS_U64Range frange
Definition syms_debug_info.h:18
Definition syms_debug_info.h:255
SYMS_U64 v
Definition syms_debug_info.h:256
Definition syms_debug_info.h:334
SYMS_SymbolIDArray param_type_ids
Definition syms_debug_info.h:336
SYMS_SymbolID this_type_id
Definition syms_debug_info.h:338
SYMS_SymbolID return_type_id
Definition syms_debug_info.h:337
SYMS_UnitID uid
Definition syms_debug_info.h:335
Definition syms_debug_info.h:130
SYMS_FileID file_id
Definition syms_debug_info.h:131
SYMS_U32 line
Definition syms_debug_info.h:132
SYMS_U32 col
Definition syms_debug_info.h:133
Definition syms_base.h:313
Definition syms_base.h:296
Definition syms_debug_info.h:228
SYMS_SymbolID * ids
Definition syms_debug_info.h:229
SYMS_U64 count
Definition syms_debug_info.h:230
Definition syms_debug_info.h:222
SYMS_U64 count
Definition syms_debug_info.h:225
SYMS_SymbolIDNode * last
Definition syms_debug_info.h:224
SYMS_SymbolIDNode * first
Definition syms_debug_info.h:223
Definition syms_debug_info.h:217
struct SYMS_SymbolIDNode * next
Definition syms_debug_info.h:218
SYMS_SymbolID id
Definition syms_debug_info.h:219
Definition syms_debug_info.h:264
SYMS_U64 reported_size
Definition syms_debug_info.h:275
SYMS_USID direct_type
Definition syms_debug_info.h:290
SYMS_SizeInterpretation reported_size_interp
Definition syms_debug_info.h:274
SYMS_TypeKind kind
Definition syms_debug_info.h:265
SYMS_USID containing_type
Definition syms_debug_info.h:296
SYMS_TypeModifiers mods
Definition syms_debug_info.h:271
SYMS_CallConvention call_convention
Definition syms_debug_info.h:294
SYMS_SrcCoord src_coord
Definition syms_debug_info.h:278
Definition syms_base.h:264
Definition syms_debug_info.h:250
SYMS_USID * usid
Definition syms_debug_info.h:251
SYMS_U64 count
Definition syms_debug_info.h:252
Definition syms_debug_info.h:244
SYMS_U64 count
Definition syms_debug_info.h:247
SYMS_USIDNode * last
Definition syms_debug_info.h:246
SYMS_USIDNode * first
Definition syms_debug_info.h:245
Definition syms_debug_info.h:239
struct SYMS_USIDNode * next
Definition syms_debug_info.h:240
SYMS_USID usid
Definition syms_debug_info.h:241
Definition syms_debug_info.h:234
SYMS_UnitID uid
Definition syms_debug_info.h:235
SYMS_SymbolID sid
Definition syms_debug_info.h:236
Definition syms_debug_info.h:259
SYMS_UnitID uid
Definition syms_debug_info.h:260
SYMS_SigHandle sig
Definition syms_debug_info.h:261
Definition syms_debug_info.h:79
SYMS_Language language
Definition syms_debug_info.h:81
SYMS_UnitFeatures features
Definition syms_debug_info.h:80
Definition syms_debug_info.h:84
SYMS_String8 source_file
Definition syms_debug_info.h:85
SYMS_String8 archive_file
Definition syms_debug_info.h:87
SYMS_String8 compile_dir
Definition syms_debug_info.h:89
SYMS_String8 compiler
Definition syms_debug_info.h:88
SYMS_String8 object_file
Definition syms_debug_info.h:86
Definition syms_debug_info.h:97
SYMS_U64 count
Definition syms_debug_info.h:99
SYMS_UnitRange * ranges
Definition syms_debug_info.h:98
Definition syms_debug_info.h:92
SYMS_U64Range vrange
Definition syms_debug_info.h:93
SYMS_UnitID uid
Definition syms_debug_info.h:94
#define SYMS_READ_ONLY
Definition syms_base.h:57
#define SYMS_API
Definition syms_base.h:29
#define SYMS_C_LINKAGE_BEGIN
Definition syms_base.h:37
SYMS_S32 SYMS_B32
Definition syms_base.h:99
#define SYMS_C_LINKAGE_END
Definition syms_base.h:38
#define SYMS_GLOBAL
Definition syms_base.h:42
uint32_t SYMS_U32
Definition syms_crt_overrides.h:38
uint64_t SYMS_U64
Definition syms_crt_overrides.h:39
uint16_t SYMS_U16
Definition syms_crt_overrides.h:37
uint8_t SYMS_U8
Definition syms_crt_overrides.h:36
SYMS_U32 SYMS_MemFlags
Definition syms_debug_info.h:318
SYMS_API SYMS_USID syms_make_usid(SYMS_UnitID uid, SYMS_SymbolID sid)
Definition syms_debug_info.c:22
SYMS_ProcLoc
Definition syms_debug_info.h:377
@ SYMS_ProcLoc_FrameBase
Definition syms_debug_info.h:378
@ SYMS_ProcLoc_ReturnAddress
Definition syms_debug_info.h:379
SYMS_API SYMS_B32 syms_type_kind_is_user_defined(SYMS_TypeKind kind)
Definition syms_debug_info.c:91
SYMS_API SYMS_B32 syms_type_kind_is_enum(SYMS_TypeKind kind)
Definition syms_debug_info.c:103
SYMS_API SYMS_B32 syms_type_kind_is_signed(SYMS_TypeKind kind)
Definition syms_debug_info.c:79
SYMS_API SYMS_B32 syms_type_kind_is_forward(SYMS_TypeKind kind)
Definition syms_debug_info.c:109
SYMS_U64 SYMS_UnitID
Definition syms_debug_info.h:77
SYMS_U64 SYMS_FileID
Definition syms_debug_info.h:128
SYMS_SizeInterpretation
Definition syms_debug_info.h:205
@ SYMS_SizeInterpretation_ByteCount
Definition syms_debug_info.h:207
@ SYMS_SizeInterpretation_ResolveForwardReference
Definition syms_debug_info.h:209
@ SYMS_SizeInterpretation_Multiplier
Definition syms_debug_info.h:208
@ SYMS_SizeInterpretation_Null
Definition syms_debug_info.h:206
SYMS_U64 SYMS_SymbolID
Definition syms_debug_info.h:215
SYMS_API SYMS_TypeKind syms_type_kind_fwd_from_main(SYMS_TypeKind type_kind)
Definition syms_debug_info.c:36
SYMS_C_LINKAGE_BEGIN SYMS_API SYMS_B32 syms_ext_match_key_match(SYMS_ExtMatchKey *a, SYMS_ExtMatchKey *b)
Definition syms_debug_info.c:16
SYMS_API SYMS_B32 syms_type_kind_is_basic(SYMS_TypeKind kind)
Definition syms_debug_info.c:60
SYMS_API SYMS_B32 syms_type_kind_is_integer(SYMS_TypeKind kind)
Definition syms_debug_info.c:73
SYMS_API SYMS_B32 syms_type_kind_is_complex(SYMS_TypeKind kind)
Definition syms_debug_info.c:85
SYMS_API SYMS_B32 syms_type_kind_is_basic_or_enum(SYMS_TypeKind kind)
Definition syms_debug_info.c:66
SYMS_U64 SYMS_LocID
Definition syms_debug_info.h:354
SYMS_CallConvention
Definition syms_debug_info.h:176
@ SYMS_CallConvention_COUNT
Definition syms_debug_info.h:202
@ SYMS_CallConvention_ALPHACALL
Definition syms_debug_info.h:191
@ SYMS_CallConvention_FAR_C
Definition syms_debug_info.h:179
@ SYMS_CallConvention_INLINE
Definition syms_debug_info.h:200
@ SYMS_CallConvention_ARMCALL
Definition syms_debug_info.h:194
@ SYMS_CallConvention_NEAR_STD
Definition syms_debug_info.h:184
@ SYMS_CallConvention_FAR_FAST
Definition syms_debug_info.h:183
@ SYMS_CallConvention_SHCALL
Definition syms_debug_info.h:193
@ SYMS_CallConvention_FAR_SYS
Definition syms_debug_info.h:187
@ SYMS_CallConvention_NEAR_SYS
Definition syms_debug_info.h:186
@ SYMS_CallConvention_M32RCALL
Definition syms_debug_info.h:198
@ SYMS_CallConvention_THISCALL
Definition syms_debug_info.h:188
@ SYMS_CallConvention_NULL
Definition syms_debug_info.h:177
@ SYMS_CallConvention_FAR_PASCAL
Definition syms_debug_info.h:181
@ SYMS_CallConvention_MIPSCALL
Definition syms_debug_info.h:189
@ SYMS_CallConvention_NEAR_VECTOR
Definition syms_debug_info.h:201
@ SYMS_CallConvention_FAR_STD
Definition syms_debug_info.h:185
@ SYMS_CallConvention_PPCCALL
Definition syms_debug_info.h:192
@ SYMS_CallConvention_NEAR_C
Definition syms_debug_info.h:178
@ SYMS_CallConvention_SH5CALL
Definition syms_debug_info.h:197
@ SYMS_CallConvention_TRICALL
Definition syms_debug_info.h:196
@ SYMS_CallConvention_CLRCALL
Definition syms_debug_info.h:199
@ SYMS_CallConvention_GENERIC
Definition syms_debug_info.h:190
@ SYMS_CallConvention_NEAR_FAST
Definition syms_debug_info.h:182
@ SYMS_CallConvention_AM33CALL
Definition syms_debug_info.h:195
@ SYMS_CallConvention_NEAR_PASCAL
Definition syms_debug_info.h:180
@ SYMS_MemFlag_Destructor
Definition syms_debug_info.h:322
@ SYMS_MemFlag_Constructor
Definition syms_debug_info.h:321
@ SYMS_MemFlag_Virtual
Definition syms_debug_info.h:320
SYMS_MemKind
Definition syms_debug_info.h:306
@ SYMS_MemKind_VTablePtr
Definition syms_debug_info.h:312
@ SYMS_MemKind_StaticMethod
Definition syms_debug_info.h:311
@ SYMS_MemKind_Null
Definition syms_debug_info.h:307
@ SYMS_MemKind_VBaseClassPtr
Definition syms_debug_info.h:314
@ SYMS_MemKind_StaticData
Definition syms_debug_info.h:309
@ SYMS_MemKind_NestedType
Definition syms_debug_info.h:315
@ SYMS_MemKind_Method
Definition syms_debug_info.h:310
@ SYMS_MemKind_DataField
Definition syms_debug_info.h:308
@ SYMS_MemKind_BaseClass
Definition syms_debug_info.h:313
SYMS_API SYMS_SymbolIDArray syms_sid_array_from_list(SYMS_Arena *arena, SYMS_SymbolIDList *list)
Definition syms_debug_info.c:115
SYMS_API SYMS_B32 syms_type_kind_is_record(SYMS_TypeKind kind)
Definition syms_debug_info.c:97
SYMS_API SYMS_TypeKind syms_type_kind_main_from_fwd(SYMS_TypeKind type_kind)
Definition syms_debug_info.c:48
SYMS_READ_ONLY SYMS_GLOBAL SYMS_FileFormat syms_format_nil
Definition syms_debug_info.h:398
#define SYMS_Arena
Definition syms_default_arena.h:61
SYMS_FileFormat
Definition syms_meta_base.h:94
@ SYMS_FileFormat_Null
Definition syms_meta_base.h:95
SYMS_Language
Definition syms_meta_base.h:24
SYMS_Arch
Definition syms_meta_base.h:6
SYMS_MemVisibility
Definition syms_meta_debug_info.h:92
SYMS_U32 SYMS_TypeModifiers
Definition syms_meta_debug_info.h:81
SYMS_TypeKind
Definition syms_meta_debug_info.h:27
SYMS_U32 SYMS_UnitFeatures
Definition syms_meta_debug_info.h:6