UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
syms_dwarf_parser.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2/* date = May 11th 2021 4:56 pm */
3
4#ifndef SYMS_DWARF_PARSER_H
5#define SYMS_DWARF_PARSER_H
6
7// NOTE(rjf): Some rules about the spaces of offsets and ranges:
8//
9// - Every stored/passed offset is relative to the base of its section.
10// - Every stored/passed range has endpoints relative to the base of their section.
11// - Upon calling a syms_based_range_* function, these offsets need to be
12// converted into range-relative.
13
15//~ rjf: Constants
16
17#define SYMS_DWARF_VOID_TYPE_ID 0xffffffffffffffffull
18
20//~ rjf: Helper Types
21
29
37
46
48//~ rjf: Files + External Debug References
49
52{
53 // NOTE(rjf): .dwo => an external DWARF V5 .dwo file
56};
57
59//~ rjf: Abbrev Table
60
67
74
76//~ rjf: Dbg Accel
77
83
86{
88 SYMS_U64Range frange; // rjf: .debug_info range in file
89 SYMS_U64RangeArray addr_ranges; // rjf: .debug_aranges
90};
91
106
108//~ rjf: Basic Line Info
109
119
126
134
141
143//~ rjf: Abbrevs
144
155
157enum{
160};
161
172
174//~ rjf: Attribs
175
178{
181 SYMS_U64 addr_size; // NOTE(rjf): size in bytes of containing compilation unit's addresses
182 SYMS_U64 containing_unit_info_off; // NOTE(rjf): containing compilation unit's offset into the .debug_info section
183 SYMS_U64 debug_addrs_base; // NOTE(rjf): containing compilation unit's offset into the .debug_addrs section (DWARF V5 ONLY)
184 SYMS_U64 debug_rnglists_base; // NOTE(rjf): containing compilation unit's offset into the .debug_rnglists section (DWARF V5 ONLY)
185 SYMS_U64 debug_str_offs_base; // NOTE(rjf): containing compilation unit's offset into the .debug_str_offsets section (DWARF V5 ONLY)
186 SYMS_U64 debug_loclists_base; // NOTE(rjf): containing compilation unit's offset into the .debug_loclists section (DWARF V5 ONLY)
187};
188
195
206
213
220
228
236
238//~ rjf: Compilation Units + Accelerators
239
242{
243 // NOTE(rjf): Header Data
253
254 // NOTE(rjf): [parsed from DWARF attributes] Offsets For More Info (DWARF V5 ONLY)
255 SYMS_U64 rnglist_base; // NOTE(rjf): Offset into the .debug_rnglists section where this comp unit's data is.
256 SYMS_U64 loclist_base; // NOTE(rjf): Offset into the .debug_loclists section where this comp unit's data is.
257 SYMS_U64 addrs_base; // NOTE(rjf): Offset into the .debug_addr section where this comp unit's data is.
258 SYMS_U64 stroffs_base; // NOTE(rjf): Offset into the .debug_str_offsets section where this comp unit's data is.
259
260 // NOTE(rjf): [parsed from DWARF attributes] General Info
274
275 // NOTE(rjf): Line/File Info For This Comp Unit
278};
279
287
295
297//~ rjf: Tags
298
299typedef struct SYMS_DwTag SYMS_DwTag;
315
317enum
318{
323};
324
327{
334
335 // NOTE(rjf): SYMS_DwAttribKind_SPECIFICATION is tacked onto definitions that
336 // are filling out more info about a "prototype". That attribute is a reference
337 // that points back at the declaration tag. The declaration tag has the
338 // SYMS_DwAttribKind_DECLARATION attribute, which is sort of like the reverse
339 // of that, except there's no reference. So what we're doing here is just storing
340 // a reference on both, that point back to each other, so it's always easy to
341 // get from decl => spec, or from spec => decl.
343
344 // NOTE(rjf): SYMS_DwAttribKind_ABSTRACT_ORIGIN is tacked onto some definitions
345 // that are used to specify information more specific to inlining, while wanting
346 // to refer to an "abstract" function DIE, that is not specific to any inline
347 // sites. The DWARF generator will not duplicate information across these, so
348 // we will occasionally need to look at an abstract origin to get abstract
349 // information, like name/linkage-name/etc.
351
353};
354
361
369
371//~ rjf: Line Info VM Types
372
394
397{
398 SYMS_U64 address; // NOTE(nick): Address of a machine instruction.
399 SYMS_U32 op_index; // NOTE(nick): This is used by the VLIW instructions to indicate index of operation inside the instruction.
400
401 // NOTE(nick): Line table doesn't contain full path to a file, instead
402 // DWARF encodes path as two indices. First index will point into a directory
403 // table, and second points into a file name table.
405
408
409 SYMS_B32 is_stmt; // NOTE(nick): Indicates that "va" points to place suitable for a breakpoint.
410 SYMS_B32 basic_block; // NOTE(nick): Indicates that the "va" is inside a basic block.
411
412 // NOTE(nick): Indicates that "va" points to place where function starts.
413 // Usually prologue is the place where compiler emits instructions to
414 // prepare stack for a function.
416
417 SYMS_B32 epilogue_begin; // NOTE(nick): Indicates that "va" points to section where function exits and unwinds stack.
418 SYMS_U64 isa; // NOTE(nick): Instruction set that is used.
419 SYMS_U64 discriminator; // NOTE(nick): Arbitrary id that indicates to which block these instructions belong.
420 SYMS_B32 end_sequence; // NOTE(nick): Indicates that "va" points to the first instruction in the instruction block that follows.
421
422 // NOTE(rjf): it looks like LTO might sometimes zero out high PC and low PCs, causing a
423 // swath of line info to map to a range starting at 0. This causes overlapping ranges
424 // which we do not want to report. So this B32 will turn on emission.
426};
427
434
443
451
453//~ rjf: .debug_pubnames and .debug_pubtypes
454
463
470
472//~ rjf: Tag Reference (Specification Attributes etc.) Data Structure
473
481
488
490//~ rjf: Unit Accelerator
491
502
505{
507
508 //- rjf: header information (from comp root)
516
517 //- rjf: tag stub hash table
520
521 //- rjf: tag reference tables
524
525 //- rjf: tag stub tree
527
528 //- rjf: top-level symbol IDs
529 SYMS_SymbolIDArray all_top_ids; // TODO(rjf): this will be removed
533
534 // TODO(rjf): hack hack hack, merge with above info
536};
537
539//~ rjf: Members Accelerator
540
551
553//~ rjf: Name Mapping Accelerator
554
561
564{
566 // TODO(allen):
567};
568
570
572//~ rjf: Basic Helpers
573
576
580
582
586
588//~ rjf: DWARF-Specific Based Range Reads
589
594
596//~ rjf: Debug Info Accelerator (DbgAccel) code
597
598//- rjf: debug info and interaction with bin accels
605 SYMS_DwDbgAccel *dbg);
609
610//- rjf: top-level unit info
612
613//- rjf: important DWARF section base/range accessors
615
618 SYMS_DwSectionKind kind);
620
622//~ rjf: Abbrev Table
623
627
629//~ rjf: Miscellaneous DWARF Section Parsing
630
631//- rjf: .debug_ranges (DWARF V4)
633
634//- rjf: .debug_loc (DWARF V4)
637
638//- rjf: .debug_pubtypes + .debug_pubnames (DWARF V4)
640 SYMS_DwDbgAccel *dbg,
644 SYMS_String8 string);
645
646//- rjf: .debug_str_offsets (DWARF V5)
648
649//- rjf: .debug_addr (DWARF V5)
651
652//- rjf: .debug_rnglists parsing (DWARF V5)
655
656//- rjf: .debug_loclists parsing (DWARF V5)
659
661//~ rjf: Attrib Value Parsing
662
665 SYMS_DwAttribValueResolveParams resolve_params,
666 SYMS_DwFormKind form_kind,
667 SYMS_DwAttribClass value_class,
668 SYMS_DwAttribValue form_value);
670 SYMS_DwAttribValue value);
672
674//~ rjf: Tag Parsing
675
678 SYMS_String8 data, SYMS_DwDbgAccel *dbg,
679 SYMS_DwAbbrevTable abbrev_table,
680 SYMS_DwLanguage lang,
681 SYMS_DwVersion ver,
682 SYMS_U64 address_size,
685 SYMS_DwTag *tag);
686
688//~ rjf: Unit Set Accelerator
689
691 SYMS_DwSectionKind section,
694 SYMS_String8 data, SYMS_DwDbgAccel *dbg,
695 SYMS_U64 index, SYMS_U64Range range);
698 SYMS_DwDbgAccel *dbg);
705 SYMS_UnitID uid);
709 SYMS_String8 data, SYMS_DwDbgAccel *dbg,
710 SYMS_DwUnitSetAccel *unit_set);
712 SYMS_String8 data, SYMS_DwDbgAccel *dbg,
713 SYMS_DwUnitSetAccel *unit_set, SYMS_UnitID uid);
714
716//~ rjf: Tag Reference Data Structure
717
721
723//~ rjf: Unit Symbol Accelerator
724
728 SYMS_DwDbgAccel *dbg,
731 SYMS_DwDbgAccel *dbg,
732 SYMS_DwUnitSetAccel *unit_set,
733 SYMS_UnitID uid);
744
746//~ rjf: Members
747
750 SYMS_SymbolID sid);
754 SYMS_DwMemsAccel *mems, SYMS_U64 n);
757 SYMS_U64 n);
760 SYMS_U64 n);
763 SYMS_U64 n);
768
770//~ rjf: Full Symbol Info Parsing
771
773 SYMS_DwUnitAccel *unit,
776 SYMS_DwUnitAccel *unit,
791
792//- rjf: location information
797 SYMS_DwUnitAccel *unit, SYMS_LocID loc_id);
798
799//- rjf: location information helpers
807
808//- rjf: files
812 SYMS_UnitID uid, SYMS_FileID file_id);
813
814//- rjf: procedures
817 SYMS_SymbolID sid);
824
825//- rjf: line info
826SYMS_API void syms_dw_line_vm_reset(SYMS_DwLineVMState *state, SYMS_B32 default_is_stmt);
828 SYMS_U64 min_inst_len, SYMS_U64 max_ops_for_inst);
829
833 SYMS_DwDbgAccel *dbg, SYMS_DwCompRoot *root);
838 SYMS_U8 address_size,
842 SYMS_U64 line_off, SYMS_String8 data, SYMS_DwMode mode, SYMS_DwDbgAccel *dbg,
844
845//- rjf: name maps
849 SYMS_DwMapAccel *map, SYMS_String8 string);
850
852
853#endif // SYMS_DWARF_PARSER_H
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
bool left(const int *a, const int *b, const int *c)
Definition RecastMesh.cpp:182
char * dst
Definition lz4.h:735
float v
Definition radaudio_mdct.cpp:62
Definition syms_debug_info.h:300
Definition syms_dwarf_parser.h:63
SYMS_U64 id
Definition syms_dwarf_parser.h:64
SYMS_U64 off
Definition syms_dwarf_parser.h:65
Definition syms_dwarf_parser.h:70
SYMS_U64 count
Definition syms_dwarf_parser.h:71
SYMS_DwAbbrevTableEntry * entries
Definition syms_dwarf_parser.h:72
Definition syms_dwarf_parser.h:164
SYMS_U64 const_value
Definition syms_dwarf_parser.h:169
SYMS_DwAbbrevKind kind
Definition syms_dwarf_parser.h:165
SYMS_DwAbbrevFlags flags
Definition syms_dwarf_parser.h:170
SYMS_U64 sub_kind
Definition syms_dwarf_parser.h:167
SYMS_U64Range abbrev_range
Definition syms_dwarf_parser.h:166
SYMS_U64 id
Definition syms_dwarf_parser.h:168
Definition syms_dwarf_parser.h:209
SYMS_U64 count
Definition syms_dwarf_parser.h:211
SYMS_DwAttrib * v
Definition syms_dwarf_parser.h:210
Definition syms_dwarf_parser.h:231
SYMS_U64 max_abbrev_off
Definition syms_dwarf_parser.h:234
SYMS_DwAttribList attribs
Definition syms_dwarf_parser.h:232
SYMS_U64 max_info_off
Definition syms_dwarf_parser.h:233
Definition syms_dwarf_parser.h:223
SYMS_DwAttribNode * last
Definition syms_dwarf_parser.h:225
SYMS_DwAttribNode * first
Definition syms_dwarf_parser.h:224
SYMS_U64 count
Definition syms_dwarf_parser.h:226
Definition syms_dwarf_parser.h:216
SYMS_DwAttrib attrib
Definition syms_dwarf_parser.h:218
SYMS_DwAttribNode * next
Definition syms_dwarf_parser.h:217
Definition syms_dwarf_parser.h:178
SYMS_U64 debug_str_offs_base
Definition syms_dwarf_parser.h:185
SYMS_U64 debug_rnglists_base
Definition syms_dwarf_parser.h:184
SYMS_U64 containing_unit_info_off
Definition syms_dwarf_parser.h:182
SYMS_U64 debug_addrs_base
Definition syms_dwarf_parser.h:183
SYMS_U64 debug_loclists_base
Definition syms_dwarf_parser.h:186
SYMS_DwLanguage language
Definition syms_dwarf_parser.h:180
SYMS_U64 addr_size
Definition syms_dwarf_parser.h:181
SYMS_DwVersion version
Definition syms_dwarf_parser.h:179
Definition syms_dwarf_parser.h:191
SYMS_U64 v[2]
Definition syms_dwarf_parser.h:193
SYMS_DwSectionKind section
Definition syms_dwarf_parser.h:192
Definition syms_dwarf_parser.h:198
SYMS_DwAttribClass value_class
Definition syms_dwarf_parser.h:203
SYMS_DwAttribValue form_value
Definition syms_dwarf_parser.h:204
SYMS_U64 abbrev_id
Definition syms_dwarf_parser.h:200
SYMS_U64 info_off
Definition syms_dwarf_parser.h:199
SYMS_DwAttribKind attrib_kind
Definition syms_dwarf_parser.h:201
SYMS_DwFormKind form_kind
Definition syms_dwarf_parser.h:202
Definition syms_dwarf_parser.h:242
SYMS_U64 addrs_base
Definition syms_dwarf_parser.h:257
SYMS_DwLineVMFileArray file_table
Definition syms_dwarf_parser.h:277
SYMS_U64Range tags_info_range
Definition syms_dwarf_parser.h:251
SYMS_DwAbbrevTable abbrev_table
Definition syms_dwarf_parser.h:252
SYMS_B32 use_utf8
Definition syms_dwarf_parser.h:268
SYMS_U64 dwo_id
Definition syms_dwarf_parser.h:265
SYMS_U64 loclist_base
Definition syms_dwarf_parser.h:256
SYMS_DwAttribValue ranges_attrib_value
Definition syms_dwarf_parser.h:272
SYMS_U64 abbrev_off
Definition syms_dwarf_parser.h:248
SYMS_U64 low_pc
Definition syms_dwarf_parser.h:270
SYMS_U64 high_pc
Definition syms_dwarf_parser.h:271
SYMS_U64 rnglist_base
Definition syms_dwarf_parser.h:255
SYMS_U64 size
Definition syms_dwarf_parser.h:244
SYMS_U64 address_size
Definition syms_dwarf_parser.h:247
SYMS_U64 info_off
Definition syms_dwarf_parser.h:249
SYMS_String8 external_dwo_name
Definition syms_dwarf_parser.h:264
SYMS_String8Array dir_table
Definition syms_dwarf_parser.h:276
SYMS_U64 name_case
Definition syms_dwarf_parser.h:267
SYMS_U64 index
Definition syms_dwarf_parser.h:250
SYMS_String8 name
Definition syms_dwarf_parser.h:261
SYMS_String8 compile_dir
Definition syms_dwarf_parser.h:263
SYMS_String8 producer
Definition syms_dwarf_parser.h:262
SYMS_U64 line_off
Definition syms_dwarf_parser.h:269
SYMS_U64 stroffs_base
Definition syms_dwarf_parser.h:258
SYMS_DwCompUnitKind kind
Definition syms_dwarf_parser.h:245
SYMS_DwVersion version
Definition syms_dwarf_parser.h:246
SYMS_DwLanguage language
Definition syms_dwarf_parser.h:266
SYMS_U64 base_addr
Definition syms_dwarf_parser.h:273
Definition syms_dwarf_parser.h:94
SYMS_U64 text_section_idx
Definition syms_dwarf_parser.h:99
SYMS_DwUnitRangeInfo * unit_range_info
Definition syms_dwarf_parser.h:103
SYMS_U64Range acceptable_vrange
Definition syms_dwarf_parser.h:100
SYMS_DwSection * section_map
Definition syms_dwarf_parser.h:101
SYMS_Arch arch
Definition syms_dwarf_parser.h:96
SYMS_FileFormat format
Definition syms_dwarf_parser.h:95
SYMS_U64 vbase
Definition syms_dwarf_parser.h:97
SYMS_SecInfoArray sections
Definition syms_dwarf_parser.h:98
SYMS_U64 unit_count
Definition syms_dwarf_parser.h:102
SYMS_B32 is_dwo
Definition syms_dwarf_parser.h:104
Definition syms_dwarf_parser.h:52
SYMS_String8 dwo_path
Definition syms_dwarf_parser.h:54
SYMS_U64 dwo_id
Definition syms_dwarf_parser.h:55
Definition syms_dwarf_parser.h:112
SYMS_U64 md5_digest[2]
Definition syms_dwarf_parser.h:116
SYMS_String8 file_name
Definition syms_dwarf_parser.h:113
SYMS_U64 dir_idx
Definition syms_dwarf_parser.h:114
SYMS_U64 modify_time
Definition syms_dwarf_parser.h:115
SYMS_U64 file_size
Definition syms_dwarf_parser.h:117
Definition syms_dwarf_parser.h:430
SYMS_Line line
Definition syms_dwarf_parser.h:432
SYMS_DwLineNode * next
Definition syms_dwarf_parser.h:431
Definition syms_dwarf_parser.h:437
SYMS_DwLineNode * first
Definition syms_dwarf_parser.h:440
SYMS_DwLineSeqNode * next
Definition syms_dwarf_parser.h:438
SYMS_U64 count
Definition syms_dwarf_parser.h:439
SYMS_DwLineNode * last
Definition syms_dwarf_parser.h:441
Definition syms_dwarf_parser.h:446
SYMS_U64 seq_count
Definition syms_dwarf_parser.h:447
SYMS_DwLineSeqNode * last_seq
Definition syms_dwarf_parser.h:449
SYMS_DwLineSeqNode * first_seq
Definition syms_dwarf_parser.h:448
Definition syms_dwarf_parser.h:137
SYMS_U64 count
Definition syms_dwarf_parser.h:138
SYMS_DwLineFile * v
Definition syms_dwarf_parser.h:139
Definition syms_dwarf_parser.h:129
SYMS_DwLineVMFileNode * first
Definition syms_dwarf_parser.h:131
SYMS_U64 node_count
Definition syms_dwarf_parser.h:130
SYMS_DwLineVMFileNode * last
Definition syms_dwarf_parser.h:132
Definition syms_dwarf_parser.h:122
SYMS_DwLineVMFileNode * next
Definition syms_dwarf_parser.h:123
SYMS_DwLineFile file
Definition syms_dwarf_parser.h:124
Definition syms_dwarf_parser.h:375
SYMS_S8 line_base
Definition syms_dwarf_parser.h:386
SYMS_U8 * opcode_lens
Definition syms_dwarf_parser.h:390
SYMS_U8 default_is_stmt
Definition syms_dwarf_parser.h:385
SYMS_U8 opcode_base
Definition syms_dwarf_parser.h:388
SYMS_U16 version
Definition syms_dwarf_parser.h:378
SYMS_U64 unit_length
Definition syms_dwarf_parser.h:376
SYMS_DwLineVMFileArray file_table
Definition syms_dwarf_parser.h:392
SYMS_String8Array dir_table
Definition syms_dwarf_parser.h:391
SYMS_U8 address_size
Definition syms_dwarf_parser.h:379
SYMS_U8 max_ops_for_inst
Definition syms_dwarf_parser.h:384
SYMS_U64 num_opcode_lens
Definition syms_dwarf_parser.h:389
SYMS_U64 unit_opl
Definition syms_dwarf_parser.h:377
SYMS_U8 line_range
Definition syms_dwarf_parser.h:387
SYMS_U64 program_off
Definition syms_dwarf_parser.h:382
SYMS_U64 header_length
Definition syms_dwarf_parser.h:381
SYMS_U8 min_inst_len
Definition syms_dwarf_parser.h:383
SYMS_U8 segment_selector_size
Definition syms_dwarf_parser.h:380
Definition syms_dwarf_parser.h:397
SYMS_U64 discriminator
Definition syms_dwarf_parser.h:419
SYMS_U32 op_index
Definition syms_dwarf_parser.h:399
SYMS_U32 line
Definition syms_dwarf_parser.h:406
SYMS_B32 end_sequence
Definition syms_dwarf_parser.h:420
SYMS_U64 isa
Definition syms_dwarf_parser.h:418
SYMS_B32 epilogue_begin
Definition syms_dwarf_parser.h:417
SYMS_B32 prologue_end
Definition syms_dwarf_parser.h:415
SYMS_U32 column
Definition syms_dwarf_parser.h:407
SYMS_B32 is_stmt
Definition syms_dwarf_parser.h:409
SYMS_U64 address
Definition syms_dwarf_parser.h:398
SYMS_U32 file_index
Definition syms_dwarf_parser.h:404
SYMS_B32 busted_seq
Definition syms_dwarf_parser.h:425
SYMS_B32 basic_block
Definition syms_dwarf_parser.h:410
Definition syms_dwarf_parser.h:564
SYMS_FileFormat format
Definition syms_dwarf_parser.h:565
Definition syms_dwarf_parser.h:557
SYMS_FileFormat format
Definition syms_dwarf_parser.h:558
SYMS_DwPubStringsTable tbl
Definition syms_dwarf_parser.h:559
Definition syms_dwarf_parser.h:543
SYMS_MemInfo * mem_infos
Definition syms_dwarf_parser.h:546
SYMS_USID * full_symbols
Definition syms_dwarf_parser.h:548
SYMS_FileFormat format
Definition syms_dwarf_parser.h:544
SYMS_SymbolID * sig_symbols
Definition syms_dwarf_parser.h:549
SYMS_U64 count
Definition syms_dwarf_parser.h:545
SYMS_USID * type_symbols
Definition syms_dwarf_parser.h:547
Definition syms_dwarf_parser.h:457
SYMS_SymbolID sid
Definition syms_dwarf_parser.h:460
SYMS_UnitID uid
Definition syms_dwarf_parser.h:461
SYMS_String8 string
Definition syms_dwarf_parser.h:459
SYMS_DwPubStringsBucket * next
Definition syms_dwarf_parser.h:458
Definition syms_dwarf_parser.h:466
SYMS_DwPubStringsBucket ** buckets
Definition syms_dwarf_parser.h:468
SYMS_U64 size
Definition syms_dwarf_parser.h:467
Definition syms_dwarf_parser.h:80
SYMS_U64Range range
Definition syms_dwarf_parser.h:81
Definition syms_dwarf_parser.h:40
SYMS_DwSymbolIDChunk * first
Definition syms_dwarf_parser.h:43
SYMS_DwSymbolIDChunk * last
Definition syms_dwarf_parser.h:44
SYMS_U64 chunk_count
Definition syms_dwarf_parser.h:41
SYMS_U64 total_id_count
Definition syms_dwarf_parser.h:42
Definition syms_dwarf_parser.h:32
SYMS_DwSymbolIDChunk * next
Definition syms_dwarf_parser.h:33
SYMS_SymbolID ids[1022]
Definition syms_dwarf_parser.h:35
SYMS_U64 count
Definition syms_dwarf_parser.h:34
Definition syms_dwarf_parser.h:476
SYMS_SymbolID dst
Definition syms_dwarf_parser.h:478
SYMS_DwTagRefNode * hash_next
Definition syms_dwarf_parser.h:477
SYMS_SymbolID src
Definition syms_dwarf_parser.h:479
Definition syms_dwarf_parser.h:484
SYMS_DwTagRefNode ** v
Definition syms_dwarf_parser.h:486
SYMS_U64 size
Definition syms_dwarf_parser.h:485
Definition syms_dwarf_parser.h:494
SYMS_DwTagStubCacheNode * hash_next
Definition syms_dwarf_parser.h:495
SYMS_DwTagStubCacheNode * first
Definition syms_dwarf_parser.h:497
SYMS_DwTagStubCacheNode * last
Definition syms_dwarf_parser.h:498
SYMS_DwTagStub stub
Definition syms_dwarf_parser.h:500
SYMS_U64 children_count
Definition syms_dwarf_parser.h:499
SYMS_DwTagStubCacheNode * next
Definition syms_dwarf_parser.h:496
Definition syms_dwarf_parser.h:364
SYMS_DwTagStubNode * last
Definition syms_dwarf_parser.h:366
SYMS_U64 count
Definition syms_dwarf_parser.h:367
SYMS_DwTagStubNode * first
Definition syms_dwarf_parser.h:365
Definition syms_dwarf_parser.h:357
SYMS_DwTagStubNode * next
Definition syms_dwarf_parser.h:358
SYMS_DwTagStub stub
Definition syms_dwarf_parser.h:359
Definition syms_dwarf_parser.h:327
SYMS_SymbolID sid
Definition syms_dwarf_parser.h:328
SYMS_SymbolID abstract_origin
Definition syms_dwarf_parser.h:350
SYMS_U64 children_info_off
Definition syms_dwarf_parser.h:331
SYMS_U64 _unused_
Definition syms_dwarf_parser.h:352
SYMS_SymbolID ref
Definition syms_dwarf_parser.h:342
SYMS_U64 attribs_abbrev_off
Definition syms_dwarf_parser.h:333
SYMS_DwTagKind kind
Definition syms_dwarf_parser.h:329
SYMS_U64 attribs_info_off
Definition syms_dwarf_parser.h:332
SYMS_DwTagStubFlags flags
Definition syms_dwarf_parser.h:330
Definition syms_dwarf_parser.h:301
SYMS_DwTag * parent
Definition syms_dwarf_parser.h:305
SYMS_U64Range abbrev_range
Definition syms_dwarf_parser.h:307
SYMS_DwTagKind kind
Definition syms_dwarf_parser.h:310
SYMS_DwTag * last_child
Definition syms_dwarf_parser.h:304
SYMS_U64 abbrev_id
Definition syms_dwarf_parser.h:309
SYMS_U64 attribs_info_off
Definition syms_dwarf_parser.h:311
SYMS_U64Range info_range
Definition syms_dwarf_parser.h:306
SYMS_DwTag * first_child
Definition syms_dwarf_parser.h:303
SYMS_B32 has_children
Definition syms_dwarf_parser.h:308
SYMS_DwTag * next_sibling
Definition syms_dwarf_parser.h:302
SYMS_U64 attribs_abbrev_off
Definition syms_dwarf_parser.h:312
SYMS_DwAttribList attribs
Definition syms_dwarf_parser.h:313
Definition syms_dwarf_parser.h:505
SYMS_DwAttribValueResolveParams resolve_params
Definition syms_dwarf_parser.h:535
SYMS_U64 stub_table_size
Definition syms_dwarf_parser.h:518
SYMS_DwAbbrevTable abbrev_table
Definition syms_dwarf_parser.h:515
SYMS_DwTagRefTable parent_table
Definition syms_dwarf_parser.h:523
SYMS_SymbolIDArray all_top_ids
Definition syms_dwarf_parser.h:529
SYMS_SymbolIDArray var_ids
Definition syms_dwarf_parser.h:531
SYMS_DwTagRefTable ref_table
Definition syms_dwarf_parser.h:522
SYMS_DwTagStubCacheNode ** stub_table
Definition syms_dwarf_parser.h:519
SYMS_DwVersion version
Definition syms_dwarf_parser.h:510
SYMS_DwLanguage language
Definition syms_dwarf_parser.h:514
SYMS_U64 addrs_base
Definition syms_dwarf_parser.h:513
SYMS_FileFormat format
Definition syms_dwarf_parser.h:506
SYMS_U64 base_addr
Definition syms_dwarf_parser.h:512
SYMS_SymbolIDArray type_ids
Definition syms_dwarf_parser.h:532
SYMS_U64 address_size
Definition syms_dwarf_parser.h:511
SYMS_SymbolIDArray proc_ids
Definition syms_dwarf_parser.h:530
SYMS_DwTagStubCacheNode * stub_root
Definition syms_dwarf_parser.h:526
SYMS_UnitID uid
Definition syms_dwarf_parser.h:509
Definition syms_dwarf_parser.h:86
SYMS_U64RangeArray addr_ranges
Definition syms_dwarf_parser.h:89
SYMS_UnitID uid
Definition syms_dwarf_parser.h:87
SYMS_U64Range frange
Definition syms_dwarf_parser.h:88
Definition syms_dwarf_parser.h:24
SYMS_B32 is_min
Definition syms_dwarf_parser.h:27
SYMS_UnitID uid
Definition syms_dwarf_parser.h:26
SYMS_U64 p
Definition syms_dwarf_parser.h:25
Definition syms_dwarf_parser.h:282
SYMS_DwCompRoot root
Definition syms_dwarf_parser.h:285
SYMS_DwUnitSetAccelBucket * next
Definition syms_dwarf_parser.h:283
SYMS_U64 comp_root_idx
Definition syms_dwarf_parser.h:284
Definition syms_dwarf_parser.h:290
SYMS_DwCompRoot * roots
Definition syms_dwarf_parser.h:293
SYMS_FileFormat format
Definition syms_dwarf_parser.h:291
SYMS_U64 root_count
Definition syms_dwarf_parser.h:292
Definition syms_elf_parser.h:68
Definition syms_debug_info.h:346
Definition syms_debug_info.h:119
Definition syms_debug_info.h:105
Definition syms_debug_info.h:164
Definition syms_debug_info.h:136
Definition syms_debug_info.h:361
Definition syms_debug_info.h:371
Definition syms_eval.h:62
Definition syms_mach_parser.h:40
Definition syms_debug_info.h:325
Definition syms_debug_info.h:21
Definition syms_debug_info.h:255
Definition syms_debug_info.h:334
Definition syms_base.h:313
Definition syms_base.h:296
Definition syms_debug_info.h:228
Definition syms_debug_info.h:222
Definition syms_debug_info.h:264
Definition syms_base.h:280
Definition syms_base.h:274
Definition syms_base.h:264
Definition syms_debug_info.h:244
Definition syms_debug_info.h:234
Definition syms_debug_info.h:259
Definition syms_debug_info.h:79
Definition syms_debug_info.h:84
Definition syms_debug_info.h:97
#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
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
int8_t SYMS_S8
Definition syms_crt_overrides.h:32
SYMS_ProcLoc
Definition syms_debug_info.h:377
SYMS_U64 SYMS_UnitID
Definition syms_debug_info.h:77
SYMS_U64 SYMS_FileID
Definition syms_debug_info.h:128
SYMS_U64 SYMS_SymbolID
Definition syms_debug_info.h:215
SYMS_U64 SYMS_LocID
Definition syms_debug_info.h:354
#define SYMS_Arena
Definition syms_default_arena.h:61
SYMS_DwCompUnitKind
Definition syms_dwarf.h:16
SYMS_API SYMS_String8Array syms_dw_file_table_from_uid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitSetAccel *unit_set, SYMS_UnitID uid)
Definition syms_dwarf_parser.c:2993
SYMS_API SYMS_ExtFileList syms_dw_ext_file_list_from_dbg(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg)
Definition syms_dwarf_parser.c:1038
SYMS_API SYMS_U64 syms_dw_abbrev_offset_from_abbrev_id(SYMS_DwAbbrevTable table, SYMS_U64 abbrev_id)
Definition syms_dwarf_parser.c:1236
SYMS_API SYMS_LocRangeArray syms_dw_location_ranges_from_proc_sid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid, SYMS_ProcLoc proc_loc)
Definition syms_dwarf_parser.c:4826
SYMS_API SYMS_DwUnitAccel * syms_dw_unit_accel_from_uid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitSetAccel *unit_set, SYMS_UnitID uid)
Definition syms_dwarf_parser.c:3642
SYMS_API SYMS_ExtMatchKey syms_dw_ext_match_key_from_dbg(SYMS_String8 data, SYMS_DwDbgAccel *dbg)
Definition syms_dwarf_parser.c:1072
SYMS_API SYMS_SecInfoArray syms_dw_copy_sec_info_array(SYMS_Arena *arena, SYMS_SecInfoArray array)
Definition syms_dwarf_parser.c:310
SYMS_API SYMS_Location syms_dw_v4_location_from_loc_id(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_LocID loc)
Definition syms_dwarf_parser.c:1366
SYMS_API SYMS_MemInfo syms_dw_mem_info_from_number(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_DwMemsAccel *mems, SYMS_U64 n)
Definition syms_dwarf_parser.c:4079
SYMS_API SYMS_DwAttribListParseResult syms_dw_parse_attrib_list_from_info_abbrev_offsets(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwLanguage lang, SYMS_DwVersion ver, SYMS_U64 address_size, SYMS_U64 info_off, SYMS_U64 abbrev_off)
Definition syms_dwarf_parser.c:2129
SYMS_API SYMS_FileID syms_dw_file_id_from_index(SYMS_U64 idx)
Definition syms_dwarf_parser.c:4843
SYMS_API SYMS_DwLineTableParseResult syms_dw_parsed_line_table_from_comp_root(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwCompRoot *root)
Definition syms_dwarf_parser.c:5130
SYMS_API SYMS_U64 syms_dw_voff_from_var_sid(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:4591
SYMS_API SYMS_ConstInfo syms_dw_const_info_from_sid(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:4509
SYMS_API SYMS_String8 syms_dw_attrib_string_from_sid__unstable_chain(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_DwAttribKind kind, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:4266
SYMS_API SYMS_DwMemsAccel * syms_dw_mems_accel_from_sid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:3800
SYMS_API SYMS_U64RangeList syms_dw_v4_range_list_from_range_offset(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_U64 addr_size, SYMS_U64 comp_unit_base_addr, SYMS_U64 range_off)
Definition syms_dwarf_parser.c:1270
SYMS_API SYMS_String8 syms_dw_path_from_dir_and_filename(SYMS_Arena *arena, SYMS_String8 dir, SYMS_String8 filename)
Definition syms_dwarf_parser.c:325
SYMS_API void syms_dw_tag_ref_table_insert(SYMS_Arena *arena, SYMS_DwTagRefTable *table, SYMS_SymbolID src, SYMS_SymbolID dst)
Definition syms_dwarf_parser.c:3031
SYMS_API SYMS_USIDList syms_dw_v4_usid_list_from_pub_table_string(SYMS_Arena *arena, SYMS_DwPubStringsTable tbl, SYMS_String8 string)
Definition syms_dwarf_parser.c:1470
SYMS_API SYMS_LocRangeList syms_dw_v5_location_ranges_from_loclist_offset(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwSectionKind section, SYMS_U64 addr_size, SYMS_U64 addr_section_base, SYMS_U64 offset)
Definition syms_dwarf_parser.c:1743
SYMS_API SYMS_U64 syms_dw_file_index_from_id(SYMS_FileID file_id)
Definition syms_dwarf_parser.c:4837
SYMS_DwAbbrevKind
Definition syms_dwarf_parser.h:146
@ SYMS_DwAbbrevKind_Null
Definition syms_dwarf_parser.h:147
@ SYMS_DwAbbrevKind_Tag
Definition syms_dwarf_parser.h:148
@ SYMS_DwAbbrevKind_DIEEnd
Definition syms_dwarf_parser.h:152
@ SYMS_DwAbbrevKind_DIEBegin
Definition syms_dwarf_parser.h:151
@ SYMS_DwAbbrevKind_Attrib
Definition syms_dwarf_parser.h:149
@ SYMS_DwAbbrevKind_AttribSequenceEnd
Definition syms_dwarf_parser.h:150
@ SYMS_DwAbbrevFlag_HasImplicitConst
Definition syms_dwarf_parser.h:158
@ SYMS_DwAbbrevFlag_HasChildren
Definition syms_dwarf_parser.h:159
SYMS_API SYMS_String8 syms_dw_attrib_string_from_sid__unstable(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_DwAttribKind kind, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:4235
SYMS_API SYMS_LocRangeArray syms_dw_location_ranges_from_var_sid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:4811
SYMS_API SYMS_Location syms_dw_location_from_id(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_LocID loc_id)
Definition syms_dwarf_parser.c:4778
SYMS_API SYMS_DwPubStringsTable syms_dw_v4_pub_strings_table_from_section_kind(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwSectionKind section_kind)
Definition syms_dwarf_parser.c:1388
SYMS_API SYMS_DwDbgAccel * syms_dw_dbg_accel_from_mach_bin(SYMS_Arena *arena, SYMS_String8 data, SYMS_MachBinAccel *bin)
Definition syms_dwarf_parser.c:1028
SYMS_API void syms_dw_line_vm_reset(SYMS_DwLineVMState *state, SYMS_B32 default_is_stmt)
Definition syms_dwarf_parser.c:5068
SYMS_API SYMS_DwExtDebugRef syms_dw_ext_debug_ref_from_comp_root(SYMS_DwCompRoot *root)
Definition syms_dwarf_parser.c:2662
SYMS_API SYMS_U64RangeList syms_dw_v5_range_list_from_rnglist_offset(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwSectionKind section, SYMS_U64 addr_size, SYMS_U64 addr_section_base, SYMS_U64 offset)
Definition syms_dwarf_parser.c:1645
SYMS_API SYMS_U64RangeList syms_dw_range_list_from_high_low_pc_and_ranges_attrib_value(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_U64 address_size, SYMS_U64 comp_unit_base_addr, SYMS_U64 addr_section_base, SYMS_U64 low_pc, SYMS_U64 high_pc, SYMS_DwAttribValue ranges_value)
Definition syms_dwarf_parser.c:2099
SYMS_API SYMS_DwTagStub syms_dw_stub_from_tag(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwAttribValueResolveParams resolve_params, SYMS_DwTag *tag)
Definition syms_dwarf_parser.c:2276
SYMS_API SYMS_DwMode syms_dw_mode_from_sec(SYMS_DwSection *section_map, SYMS_DwSectionKind kind)
Definition syms_dwarf_parser.c:1121
SYMS_API SYMS_B32 syms_dw_mach_bin_accel_is_dbg(SYMS_MachBinAccel *bin_accel)
Definition syms_dwarf_parser.c:753
SYMS_API SYMS_DwAttribKind syms_dw_attrib_kind_from_proc_loc(SYMS_ProcLoc proc_loc)
Definition syms_dwarf_parser.c:4793
SYMS_API SYMS_SymbolIDArray syms_dw_copy_sid_array_if_needed(SYMS_Arena *arena, SYMS_SymbolIDArray arr)
Definition syms_dwarf_parser.c:3769
SYMS_API SYMS_U64 syms_dw_mem_count_from_mems(SYMS_DwMemsAccel *mems)
Definition syms_dwarf_parser.c:4073
SYMS_API SYMS_UnitID syms_dw_uid_from_accel(SYMS_DwUnitAccel *unit)
Definition syms_dwarf_parser.c:3652
SYMS_API SYMS_DwCompRoot * syms_dw_comp_root_from_uid(SYMS_DwUnitSetAccel *unit_set, SYMS_UnitID uid)
Definition syms_dwarf_parser.c:2693
SYMS_API void syms_dw_sort_unit_range_point_array_in_place__merge(SYMS_DwUnitRangePoint *a, SYMS_U64 left, SYMS_U64 right, SYMS_U64 end, SYMS_DwUnitRangePoint *b)
Definition syms_dwarf_parser.c:2740
SYMS_API SYMS_Location syms_dw_location_from_sid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid, SYMS_DwAttribKind loc_attrib)
Definition syms_dwarf_parser.c:4682
SYMS_API SYMS_SymbolKind syms_dw_symbol_kind_from_sid(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:4295
SYMS_API SYMS_DwDbgAccel * syms_dw_dbg_accel_from_elf_bin(SYMS_Arena *arena, SYMS_String8 data, SYMS_ElfBinAccel *bin)
Definition syms_dwarf_parser.c:1018
SYMS_API void * syms_dw_sec_base_from_dbg(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwSectionKind kind)
Definition syms_dwarf_parser.c:1144
SYMS_API SYMS_U64 syms_dw_v5_header_offset_from_table_offset(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwSectionKind section, SYMS_U64 table_off)
Definition syms_dwarf_parser.c:2314
SYMS_API void syms_dw_symbol_id_chunk_list_push(SYMS_Arena *arena, SYMS_DwSymbolIDChunkList *list, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:394
SYMS_API SYMS_DwLineSeqNode * syms_dw_push_line_seq(SYMS_Arena *arena, SYMS_DwLineTableParseResult *parsed_tbl)
Definition syms_dwarf_parser.c:5091
SYMS_API SYMS_SymbolIDList syms_dw_children_from_sid_with_kinds(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid, SYMS_DwTagKind *kinds, SYMS_U64 count)
Definition syms_dwarf_parser.c:4649
SYMS_API SYMS_UnitID syms_dw_uid_from_foff(SYMS_DwDbgAccel *dbg, SYMS_U64 foff)
Definition syms_dwarf_parser.c:1104
SYMS_API SYMS_U64 syms_dw_based_range_read_length(void *base, SYMS_U64Range range, SYMS_U64 offset, SYMS_U64 *out_value)
Definition syms_dwarf_parser.c:427
SYMS_API SYMS_U64 syms_dw_based_range_read_abbrev_tag(void *base, SYMS_U64Range range, SYMS_U64 offset, SYMS_DwAbbrev *out_abbrev)
Definition syms_dwarf_parser.c:455
SYMS_API SYMS_EnumMemberArray syms_dw_enum_member_array_from_sid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:4134
@ SYMS_DwTagStubFlag_HasSpecification
Definition syms_dwarf_parser.h:322
@ SYMS_DwTagStubFlag_HasObjectPointerArg
Definition syms_dwarf_parser.h:319
@ SYMS_DwTagStubFlag_HasExternal
Definition syms_dwarf_parser.h:321
@ SYMS_DwTagStubFlag_HasLocation
Definition syms_dwarf_parser.h:320
SYMS_API SYMS_UnitRangeArray syms_dw_unit_ranges_from_set(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitSetAccel *unit_set)
Definition syms_dwarf_parser.c:2782
SYMS_API SYMS_SymbolKind syms_dw_symbol_kind_from_tag_stub(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwAttribValueResolveParams resolve_params, SYMS_DwTagStub *stub)
Definition syms_dwarf_parser.c:198
SYMS_API SYMS_SigInfo syms_dw_sig_info_from_sid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:4945
SYMS_API SYMS_DwUnitAccel * syms_dw_unit_accel_from_comp_root(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwCompRoot *comp_root)
Definition syms_dwarf_parser.c:3120
SYMS_API SYMS_SymbolIDArray syms_dw_var_sid_array_from_unit(SYMS_Arena *arena, SYMS_DwUnitAccel *unit)
Definition syms_dwarf_parser.c:3785
SYMS_API SYMS_U64 syms_dw_v5_sec_offset_from_rnglist_or_loclist_section_base_index(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwSectionKind section_kind, SYMS_U64 base, SYMS_U64 index)
Definition syms_dwarf_parser.c:1585
SYMS_API SYMS_SecInfoArray syms_dw_sec_info_array_from_dbg(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg)
Definition syms_dwarf_parser.c:1065
SYMS_API SYMS_U64 syms_dw_primify_table_size(SYMS_U64 v)
Definition syms_dwarf_parser.c:3062
SYMS_API SYMS_U64 syms_dw_hash_from_sid(SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:84
SYMS_API SYMS_U64RangeArray syms_dw_scope_vranges_from_sid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:4882
SYMS_API SYMS_DwTag * syms_dw_tag_from_info_offset(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwAbbrevTable abbrev_table, SYMS_DwLanguage lang, SYMS_DwVersion ver, SYMS_U64 address_size, SYMS_U64 info_offset)
Definition syms_dwarf_parser.c:2202
SYMS_API void syms_dw_line_vm_advance(SYMS_DwLineVMState *state, SYMS_U64 advance, SYMS_U64 min_inst_len, SYMS_U64 max_ops_for_inst)
Definition syms_dwarf_parser.c:5083
SYMS_API SYMS_DwMapAccel * syms_dw_type_map_from_dbg(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg)
Definition syms_dwarf_parser.c:5723
SYMS_API SYMS_U64 syms_dw_v5_offset_from_offs_section_base_index(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwSectionKind section, SYMS_U64 base, SYMS_U64 index)
Definition syms_dwarf_parser.c:1492
SYMS_API SYMS_LineParseOut syms_dw_line_parse_from_uid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitSetAccel *set, SYMS_UnitID uid)
Definition syms_dwarf_parser.c:5380
SYMS_API SYMS_DwUnitSetAccel * syms_dw_unit_set_accel_from_dbg(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg)
Definition syms_dwarf_parser.c:2672
SYMS_API SYMS_USID syms_dw_type_from_var_sid(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:4560
SYMS_API SYMS_SymbolIDArray syms_dw_scope_children_from_sid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID id)
Definition syms_dwarf_parser.c:5044
SYMS_API SYMS_Location syms_dw_location_from_proc_sid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid, SYMS_ProcLoc proc_loc)
Definition syms_dwarf_parser.c:4818
SYMS_API SYMS_USID syms_dw_symbol_from_mem_number(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_DwMemsAccel *mems, SYMS_U64 n)
Definition syms_dwarf_parser.c:4120
SYMS_API SYMS_DwDbgAccel * syms_dw_dbg_accel_from_sec_info_array(SYMS_Arena *arena, SYMS_String8 data, SYMS_U64 vbase, SYMS_Arch arch, SYMS_SecInfoArray sections)
Definition syms_dwarf_parser.c:772
SYMS_API SYMS_U64 syms_dw_read_line_file(void *line_base, SYMS_U64Range line_rng, SYMS_U64 line_off, SYMS_DwMode mode, SYMS_DwDbgAccel *dbg, SYMS_String8 data, SYMS_DwCompRoot *unit, SYMS_U8 address_size, SYMS_U64 format_count, SYMS_U64Range *formats, SYMS_DwLineFile *line_file_out)
Definition syms_dwarf_parser.c:5429
SYMS_API SYMS_SigInfo syms_dw_sig_info_from_mem_number(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_DwMemsAccel *mems, SYMS_U64 n)
Definition syms_dwarf_parser.c:4106
SYMS_API void syms_dw_sort_unit_range_point_array_in_place(SYMS_DwUnitRangePoint *a, SYMS_U64 count)
Definition syms_dwarf_parser.c:2760
SYMS_API SYMS_LocRangeList syms_dw_v4_location_ranges_from_loc_offset(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_U64 addr_size, SYMS_U64 comp_unit_base_addr, SYMS_U64 offset)
Definition syms_dwarf_parser.c:1314
SYMS_API SYMS_UnitNames syms_dw_unit_names_from_uid(SYMS_Arena *arena, SYMS_DwUnitSetAccel *unit_set, SYMS_UnitID uid)
Definition syms_dwarf_parser.c:2729
SYMS_API SYMS_LocRangeArray syms_dw_location_ranges_from_sid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid, SYMS_DwAttribKind loc_attrib)
Definition syms_dwarf_parser.c:4717
SYMS_C_LINKAGE_BEGIN SYMS_API SYMS_U64 syms_dw_hash_from_string(SYMS_String8 string)
Definition syms_dwarf_parser.c:72
SYMS_API SYMS_U64Range syms_dw_sec_range_from_dbg(SYMS_DwDbgAccel *dbg, SYMS_DwSectionKind kind)
Definition syms_dwarf_parser.c:1150
SYMS_API SYMS_U64 syms_dw_predict_good_stub_table_size_from_range_size(SYMS_U64 size)
Definition syms_dwarf_parser.c:3100
SYMS_API SYMS_DwTagStubCacheNode * syms_dw_tag_stub_cache_node_from_sid(SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:3659
SYMS_U32 SYMS_DwTagStubFlags
Definition syms_dwarf_parser.h:316
SYMS_API SYMS_DwAttribList syms_dw_attrib_list_from_stub(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwLanguage lang, SYMS_DwVersion ver, SYMS_U64 addr_size, SYMS_DwTagStub *stub)
Definition syms_dwarf_parser.c:3762
SYMS_API SYMS_DwTagRefTable syms_dw_tag_ref_table_make(SYMS_Arena *arena, SYMS_U64 size)
Definition syms_dwarf_parser.c:3022
SYMS_API SYMS_Location syms_dw_v5_location_from_loclist_id(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwSectionKind section, SYMS_LocID id)
Definition syms_dwarf_parser.c:1870
SYMS_U32 SYMS_DwAbbrevFlags
Definition syms_dwarf_parser.h:156
SYMS_API SYMS_String8 syms_dw_symbol_name_from_sid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:4304
SYMS_API SYMS_DwTagStub syms_dw_tag_stub_from_sid(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:3676
SYMS_API SYMS_USID syms_dw_containing_type_from_sid(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:4210
SYMS_API SYMS_DwMapAccel * syms_dw_image_symbol_map_from_dbg(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg)
Definition syms_dwarf_parser.c:5737
SYMS_API SYMS_UnitInfo syms_dw_unit_info_from_uid(SYMS_DwUnitSetAccel *unit_set, SYMS_UnitID uid)
Definition syms_dwarf_parser.c:2715
SYMS_API SYMS_Location syms_dw_location_from_var_sid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:4805
SYMS_API SYMS_U64 syms_dw_based_range_read_abbrev_attrib_info(void *base, SYMS_U64Range range, SYMS_U64 offset, SYMS_DwAbbrev *out_abbrev)
Definition syms_dwarf_parser.c:506
SYMS_API SYMS_U64 syms_dw_unit_count_from_set(SYMS_DwUnitSetAccel *unit_set)
Definition syms_dwarf_parser.c:2687
SYMS_API SYMS_U64 syms_dw_based_range_read_attrib_form_value(void *base, SYMS_U64Range range, SYMS_U64 offset, SYMS_DwMode mode, SYMS_U64 address_size, SYMS_DwFormKind form_kind, SYMS_U64 implicit_const, SYMS_DwAttribValue *form_value_out)
Definition syms_dwarf_parser.c:558
SYMS_API SYMS_SymbolIDArray syms_dw_sid_array_from_chunk_list(SYMS_Arena *arena, SYMS_DwSymbolIDChunkList list)
Definition syms_dwarf_parser.c:409
SYMS_API SYMS_DwLineNode * syms_dw_push_line(SYMS_Arena *arena, SYMS_DwLineTableParseResult *tbl, SYMS_DwLineVMState *vm_state, SYMS_B32 start_of_sequence)
Definition syms_dwarf_parser.c:5101
SYMS_API SYMS_DwAttribValue syms_dw_attrib_value_from_form_value(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwAttribValueResolveParams resolve_params, SYMS_DwFormKind form_kind, SYMS_DwAttribClass value_class, SYMS_DwAttribValue form_value)
Definition syms_dwarf_parser.c:1909
SYMS_API SYMS_DwAttribClass syms_dw_pick_attrib_value_class(SYMS_DwLanguage lang, SYMS_DwVersion ver, SYMS_DwAttribKind attrib, SYMS_DwFormKind form_kind)
Definition syms_dwarf_parser.c:144
SYMS_API SYMS_SymbolID syms_dw_tag_ref_table_lookup_src(SYMS_DwTagRefTable table, SYMS_SymbolID dst)
Definition syms_dwarf_parser.c:3042
SYMS_API SYMS_SigInfo syms_dw_sig_info_from_handle(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SigHandle handle)
Definition syms_dwarf_parser.c:5038
SYMS_API SYMS_SymbolID syms_dw_sid_from_info_offset(SYMS_U64 info_offset)
Definition syms_dwarf_parser.c:138
SYMS_API SYMS_USID syms_dw_type_from_mem_number(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_DwMemsAccel *mems, SYMS_U64 n)
Definition syms_dwarf_parser.c:4092
SYMS_API SYMS_B32 syms_dw_sec_is_present(SYMS_DwDbgAccel *dbg, SYMS_DwSectionKind kind)
Definition syms_dwarf_parser.c:1136
SYMS_API SYMS_String8 syms_dw_file_name_from_id(SYMS_Arena *arena, SYMS_DwUnitSetAccel *unit_set, SYMS_UnitID uid, SYMS_FileID file_id)
Definition syms_dwarf_parser.c:4849
SYMS_API SYMS_UnitID syms_dw_uid_from_number(SYMS_DwUnitSetAccel *unit_set, SYMS_U64 n)
Definition syms_dwarf_parser.c:2704
SYMS_API SYMS_SymbolIDArray syms_dw_proc_sid_array_from_unit(SYMS_Arena *arena, SYMS_DwUnitAccel *unit)
Definition syms_dwarf_parser.c:3779
SYMS_API SYMS_DwTagStub syms_dw_cached_tag_stub_from_sid__parse_fallback(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:3692
SYMS_API SYMS_DwCompRoot syms_dw_comp_root_from_range(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_U64 index, SYMS_U64Range range)
Definition syms_dwarf_parser.c:2406
SYMS_API SYMS_U64 syms_dw_read_line_vm_header(SYMS_Arena *arena, void *line_base, SYMS_U64Range line_rng, SYMS_U64 line_off, SYMS_String8 data, SYMS_DwMode mode, SYMS_DwDbgAccel *dbg, SYMS_DwCompRoot *unit, SYMS_DwLineVMHeader *header_out)
Definition syms_dwarf_parser.c:5499
SYMS_API SYMS_DwAttribValueResolveParams syms_dw_attrib_value_resolve_params_from_comp_root(SYMS_DwCompRoot *root)
Definition syms_dwarf_parser.c:1893
SYMS_API SYMS_SymbolIDArray syms_dw_type_sid_array_from_unit(SYMS_Arena *arena, SYMS_DwUnitAccel *unit)
Definition syms_dwarf_parser.c:3791
SYMS_API SYMS_U64 syms_dw_v5_addr_from_addrs_section_base_index(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwSectionKind section, SYMS_U64 base, SYMS_U64 index)
Definition syms_dwarf_parser.c:1540
SYMS_API SYMS_String8 syms_dw_linkage_name_from_sid(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:4224
SYMS_API SYMS_TypeInfo syms_dw_type_info_from_sid(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:4312
SYMS_API SYMS_U64 syms_dw_unit_number_from_uid(SYMS_DwUnitSetAccel *unit_set, SYMS_UnitID uid)
Definition syms_dwarf_parser.c:2710
SYMS_API SYMS_U64 syms_dw_default_vbase_from_dbg(SYMS_DwDbgAccel *dbg)
Definition syms_dwarf_parser.c:1096
SYMS_API SYMS_DwAbbrevTable syms_dw_make_abbrev_table(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_U64 start_abbrev_off)
Definition syms_dwarf_parser.c:1159
SYMS_API SYMS_B32 syms_dw_elf_bin_accel_is_dbg(SYMS_ElfBinAccel *bin_accel)
Definition syms_dwarf_parser.c:717
SYMS_API SYMS_String8 syms_dw_string_from_attrib_value(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwAttribValue value)
Definition syms_dwarf_parser.c:2086
SYMS_API SYMS_USIDList syms_dw_usid_list_from_string(SYMS_Arena *arena, SYMS_DwMapAccel *map, SYMS_String8 string)
Definition syms_dwarf_parser.c:5751
SYMS_API SYMS_UnitIDAndSig syms_dw_proc_sig_handle_from_sid(SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_SymbolID sid)
Definition syms_dwarf_parser.c:5031
SYMS_API SYMS_DwTagStubList syms_dw_children_from_tag_stub(SYMS_Arena *arena, SYMS_String8 data, SYMS_DwDbgAccel *dbg, SYMS_DwUnitAccel *unit, SYMS_DwTagStub stub)
Definition syms_dwarf_parser.c:3711
SYMS_FileFormat
Definition syms_meta_base.h:94
SYMS_Arch
Definition syms_meta_base.h:6
SYMS_SymbolKind
Definition syms_meta_debug_info.h:15
SYMS_DwTagKind
Definition syms_meta_dwarf.h:123
SYMS_DwMode
Definition syms_meta_dwarf.h:6
SYMS_DwFormKind
Definition syms_meta_dwarf.h:218
SYMS_DwVersion
Definition syms_meta_dwarf.h:12
SYMS_DwSectionKind
Definition syms_meta_dwarf.h:22
SYMS_DwLanguage
Definition syms_meta_dwarf.h:43
SYMS_U32 SYMS_DwAttribClass
Definition syms_meta_dwarf.h:199
SYMS_DwAttribKind
Definition syms_meta_dwarf.h:265