UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
syms_functions.c
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
4//~ allen: Spatial Map Constructors
5
8 SYMS_ProfBegin("syms_spatial_map_from_line_table");
9
10 SYMS_U64 count = line_table->sequence_count;
14 SYMS_Line *line_array = line_table->line_array;
15 for (SYMS_U64 n = 1; n <= count; n += 1, range_ptr += 1){
16 // get sequence range & inc
17 SYMS_U64 first = *seq_index_ptr;
18 seq_index_ptr += 1;
20
21 // extract sequence range
22 SYMS_U64 last = opl - 1;
23 SYMS_U64 first_voff = line_array[first].voff;
24 SYMS_U64 opl_voff = line_array[last].voff;
25
26 // fill range ptr
27 range_ptr->range.min = first_voff;
28 range_ptr->range.max = opl_voff;
29 range_ptr->val = n;
30 }
31
32 //- sort
35 }
36
37 //- assemble map
38 SYMS_SpatialMap1D result = {ranges, count};
39
41 return(result);
42}
43
44// creates a map of (voff -> procedure symbol id)
47 SYMS_UnitAccel *unit, SYMS_SymbolIDArray *sid_array){
48 //- build loose map
51
52 SYMS_SymbolID *sid_ptr = sid_array->ids;
53 SYMS_U64 count = sid_array->count;
54 for (SYMS_U64 i = 0; i < count; i += 1, sid_ptr += 1){
56 SYMS_U64RangeArray ranges = syms_scope_vranges_from_sid(scratch.arena, data, dbg, unit, sid);
57 syms_spatial_map_1d_loose_push(scratch.arena, &loose, sid, ranges);
58 }
59
60 //- bake tight map
62
64
65 return(result);
66}
67
69//~ allen: Name Map Constructors
70
74
76
78 SYMS_SymbolID *sid = sids;
79 for (SYMS_U64 i = 0; i < sid_count; i += 1, sid += 1){
80 SYMS_String8 name = syms_symbol_name_from_sid(scratch.arena, data, dbg, unit, *sid);
81 syms_symbol_name_map_push(scratch.arena, &loose, name, *sid);
82 }
83
85
87
88 return(result);
89}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition syms_base.h:402
Definition syms_debug_info.h:153
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
Definition syms_data_structures.h:78
Definition syms_data_structures.h:59
Definition syms_data_structures.h:65
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_data_structures.h:226
Definition syms_data_structures.h:211
Definition syms_base.h:280
SYMS_API SYMS_ArenaTemp syms_get_scratch(SYMS_Arena **conflicts, SYMS_U64 conflict_count)
Definition syms_base.c:694
#define syms_push_array(a, T, c)
Definition syms_base.h:561
#define SYMS_API
Definition syms_base.h:29
#define syms_release_scratch
Definition syms_base.h:567
uint64_t SYMS_U64
Definition syms_crt_overrides.h:39
SYMS_API void syms_symbol_name_map_push(SYMS_Arena *arena, SYMS_SymbolNameMapLoose *map, SYMS_String8 name, SYMS_SymbolID sid)
Definition syms_data_structures.c:1024
SYMS_API void syms_spatial_map_1d_array_sort(SYMS_SpatialMap1DRange *ranges, SYMS_U64 count)
Definition syms_data_structures.c:334
SYMS_API SYMS_SymbolNameMap syms_symbol_name_map_bake(SYMS_Arena *arena, SYMS_SymbolNameMapLoose *loose)
Definition syms_data_structures.c:1065
SYMS_API SYMS_B32 syms_spatial_map_1d_array_check_sorted(SYMS_SpatialMap1DRange *ranges, SYMS_U64 count)
Definition syms_data_structures.c:319
SYMS_API void syms_spatial_map_1d_loose_push(SYMS_Arena *arena, SYMS_SpatialMap1DLoose *loose, SYMS_U64 val, SYMS_U64RangeArray ranges)
Definition syms_data_structures.c:251
SYMS_API SYMS_SpatialMap1D syms_spatial_map_1d_bake(SYMS_Arena *arena, SYMS_SpatialMap1DLoose *loose)
Definition syms_data_structures.c:273
SYMS_U64 SYMS_SymbolID
Definition syms_debug_info.h:215
#define SYMS_Arena
Definition syms_default_arena.h:61
#define SYMS_ProfEnd()
Definition syms_dev.h:212
#define SYMS_ProfBegin(str)
Definition syms_dev.h:209
SYMS_API SYMS_SpatialMap1D syms_spatial_map_from_line_table(SYMS_Arena *arena, SYMS_LineTable *line_table)
Definition syms_functions.c:7
SYMS_API SYMS_SymbolNameMap syms_name_map_from_sid_array(SYMS_Arena *arena, SYMS_String8 data, SYMS_DbgAccel *dbg, SYMS_UnitAccel *unit, SYMS_SymbolID *sids, SYMS_U64 sid_count)
Definition syms_functions.c:72
SYMS_API SYMS_SpatialMap1D syms_spatial_map_for_procs_from_sid_array(SYMS_Arena *arena, SYMS_String8 data, SYMS_DbgAccel *dbg, SYMS_UnitAccel *unit, SYMS_SymbolIDArray *sid_array)
Definition syms_functions.c:46
SYMS_API SYMS_String8 syms_symbol_name_from_sid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DbgAccel *dbg, SYMS_UnitAccel *unit, SYMS_SymbolID sid)
Definition syms_parser.c:771
SYMS_API SYMS_U64RangeArray syms_scope_vranges_from_sid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DbgAccel *dbg, SYMS_UnitAccel *unit, SYMS_SymbolID id)
Definition syms_parser.c:1207
Definition syms_parser.h:30
Definition syms_parser.h:42