diff --git a/src/apps/debugger/dwarf/DebugInfoEntries.cpp b/src/apps/debugger/dwarf/DebugInfoEntries.cpp index 698152a3e7..976684090c 100644 --- a/src/apps/debugger/dwarf/DebugInfoEntries.cpp +++ b/src/apps/debugger/dwarf/DebugInfoEntries.cpp @@ -1837,7 +1837,8 @@ DIESubprogram::DIESubprogram() fAddressClass(0), fPrototyped(false), fInline(DW_INL_not_inlined), - fArtificial(false) + fArtificial(false), + fCallingConvention(DW_CC_normal) { } @@ -2005,6 +2006,15 @@ DIESubprogram::AddAttribute_artificial(uint16 attributeName, } +status_t +DIESubprogram::AddAttribute_calling_convention(uint16 attributeName, + const AttributeValue& value) +{ + fCallingConvention = value.constant; + return B_OK; +} + + // #pragma mark - DIETemplateTypeParameter diff --git a/src/apps/debugger/dwarf/DebugInfoEntries.h b/src/apps/debugger/dwarf/DebugInfoEntries.h index fe54bc74c9..a679f26670 100644 --- a/src/apps/debugger/dwarf/DebugInfoEntries.h +++ b/src/apps/debugger/dwarf/DebugInfoEntries.h @@ -1225,6 +1225,8 @@ public: bool IsPrototyped() const { return fPrototyped; } uint8 Inline() const { return fInline; } bool IsArtificial() const { return fArtificial; } + uint8 CallingConvention() const + { return fCallingConvention; } DIEType* ReturnType() const { return fReturnType; } @@ -1255,6 +1257,9 @@ public: virtual status_t AddAttribute_artificial( uint16 attributeName, const AttributeValue& value); + virtual status_t AddAttribute_calling_convention( + uint16 attributeName, + const AttributeValue& value); protected: DebugInfoEntryList fParameters; @@ -1273,9 +1278,9 @@ protected: bool fPrototyped; uint8 fInline; bool fArtificial; + uint8 fCallingConvention; // TODO: -// DW_AT_calling_convention // DW_AT_elemental // DW_AT_entry_pc // DW_AT_explicit