mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-15 08:32:22 -07:00
codeview: inline binary annot format and decode helpers
This commit is contained in:
committed by
Ryan Fleury
parent
2c9a6f996d
commit
ffa802f583
+45
-13
@@ -1761,13 +1761,51 @@ struct CV_SymBuildInfo
|
||||
|
||||
//- (SymKind: INLINESITE)
|
||||
|
||||
typedef U32 CV_InlineBinaryAnnotaiton;
|
||||
typedef enum CV_InlineBinaryAnnotationenum
|
||||
{
|
||||
CV_InlineBinaryAnnotation_Null,
|
||||
CV_InlineBinaryAnnotation_CodeOffset,
|
||||
CV_InlineBinaryAnnotation_ChangeCodeOffsetBase,
|
||||
CV_InlineBinaryAnnotation_ChangeCodeOffset,
|
||||
CV_InlineBinaryAnnotation_ChangeCodeLength,
|
||||
CV_InlineBinaryAnnotation_ChnageFile,
|
||||
CV_InlineBinaryAnnotation_ChangeLineOffset,
|
||||
CV_InlineBinaryAnnotation_ChnageLineEndDelta,
|
||||
CV_InlineBinaryAnnotation_ChangeRangeKind,
|
||||
CV_InlineBinaryAnnotation_ChangeColumnStart,
|
||||
CV_InlineBinaryAnnotation_ChangeColumnEndDelta,
|
||||
CV_InlineBinaryAnnotation_ChangeCodeOffsetAndLineOffset,
|
||||
CV_InlineBinaryAnnotation_ChangeCodeLengthAndCodeOffset,
|
||||
CV_InlineBinaryAnnotaiton_ChangeColumnEnd
|
||||
};
|
||||
|
||||
typedef U32 CV_InlineRangeKind;
|
||||
typedef enum CV_InlnineRangeKindEnum
|
||||
{
|
||||
CV_InlineRangeKind_Expr,
|
||||
CV_InlineRangeKind_Stmt
|
||||
};
|
||||
|
||||
typedef struct CV_SymInlineSite CV_SymInlineSite;
|
||||
struct CV_SymInlineSite
|
||||
{
|
||||
U32 parent;
|
||||
U32 end;
|
||||
CV_ItemId inlinee;
|
||||
// CV_BinaryAnnotation annotations (rest of data)
|
||||
// U8 annotations[] (rest of data)
|
||||
};
|
||||
|
||||
//- (SymKind: INLINESITE2)
|
||||
|
||||
typedef struct CV_SymInlineSite2 CV_SymInlineSite2;
|
||||
struct CV_SymInlineSite2
|
||||
{
|
||||
U32 parent_off;
|
||||
U32 end_off;
|
||||
CV_ItemId inlinee;
|
||||
U32 invocations;
|
||||
// U8 annotations[] (rest of data)
|
||||
};
|
||||
|
||||
//- (SymKind: INLINESITE_END) (empty)
|
||||
@@ -1835,18 +1873,6 @@ struct CV_SymPogoInfo
|
||||
U32 post_inline_static_inst_count;
|
||||
};
|
||||
|
||||
//- (SymKind: INLINESITE2)
|
||||
|
||||
typedef struct CV_SymInlineSite2 CV_SymInlineSite2;
|
||||
struct CV_SymInlineSite2
|
||||
{
|
||||
U32 parent_off;
|
||||
U32 end_off;
|
||||
CV_ItemId inlinee;
|
||||
U32 invocations;
|
||||
// CV_BinaryAnnotation annotations (rest of data)
|
||||
};
|
||||
|
||||
//- (SymKind: HEAPALLOCSITE)
|
||||
|
||||
typedef struct CV_SymHeapAllocSite CV_SymHeapAllocSite;
|
||||
@@ -2905,6 +2931,12 @@ internal U64 cv_u64_from_numeric(CV_NumericParsed *num);
|
||||
internal S64 cv_s64_from_numeric(CV_NumericParsed *num);
|
||||
internal F64 cv_f64_from_numeric(CV_NumericParsed *num);
|
||||
|
||||
////////////////////////////////
|
||||
//~ Inline Binary Annotation Helpers
|
||||
|
||||
internal U64 cv_decode_inline_annot_u32(String8 data, U64 offset, U32 *out_value);
|
||||
internal U64 cv_decode_inline_annot_s32(String8 data, U64 offset, S32 *out_value);
|
||||
|
||||
////////////////////////////////
|
||||
//~ CodeView Sym/Leaf Parser Functions
|
||||
|
||||
|
||||
Reference in New Issue
Block a user