diff --git a/src/apps/debugger/debug_info/DwarfTypes.cpp b/src/apps/debugger/debug_info/DwarfTypes.cpp index a72b228c94..c302be726a 100644 --- a/src/apps/debugger/debug_info/DwarfTypes.cpp +++ b/src/apps/debugger/debug_info/DwarfTypes.cpp @@ -253,8 +253,8 @@ DwarfType::CreateDerivedAddressType(address_type_kind addressType, status_t -DwarfType::CreateDerivedArrayType(uint64 elementCount, bool extendExisting, - ArrayType*& _resultType) +DwarfType::CreateDerivedArrayType(int64 lowerBound, int64 elementCount, + bool extendExisting, ArrayType*& _resultType) { DwarfArrayType* resultType = NULL; BReference baseTypeReference; @@ -271,8 +271,8 @@ DwarfType::CreateDerivedArrayType(uint64 elementCount, bool extendExisting, return B_NO_MEMORY; DwarfSubrangeType* subrangeType = new(std::nothrow) DwarfSubrangeType( - fTypeContext, fName, NULL, resultType, BVariant((uint64)0), - BVariant(elementCount - 1)); + fTypeContext, fName, NULL, resultType, BVariant(lowerBound), + BVariant(lowerBound + elementCount - 1)); if (subrangeType == NULL) return B_NO_MEMORY; diff --git a/src/apps/debugger/debug_info/DwarfTypes.h b/src/apps/debugger/debug_info/DwarfTypes.h index dadbf43927..f95b1a640c 100644 --- a/src/apps/debugger/debug_info/DwarfTypes.h +++ b/src/apps/debugger/debug_info/DwarfTypes.h @@ -115,7 +115,8 @@ public: AddressType*& _resultType); virtual status_t CreateDerivedArrayType( - uint64 elementCount, + int64 lowerBound, + int64 elementCount, bool extendExisting, ArrayType*& _resultType); diff --git a/src/apps/debugger/model/Type.cpp b/src/apps/debugger/model/Type.cpp index ebdd4e594e..318abf2f26 100644 --- a/src/apps/debugger/model/Type.cpp +++ b/src/apps/debugger/model/Type.cpp @@ -105,7 +105,7 @@ Type::CreateDerivedAddressType(address_type_kind kind, status_t -Type::CreateDerivedArrayType(uint64 elementCount, +Type::CreateDerivedArrayType(int64 lowerBound, int64 elementCount, bool extendExisting, ArrayType*& _resultType) { _resultType = NULL; diff --git a/src/apps/debugger/model/Type.h b/src/apps/debugger/model/Type.h index b3e018b0af..8ebf55adbe 100644 --- a/src/apps/debugger/model/Type.h +++ b/src/apps/debugger/model/Type.h @@ -141,7 +141,8 @@ public: AddressType*& _resultType); virtual status_t CreateDerivedArrayType( - uint64 elementCount, + int64 lowerBound, + int64 elementCount, bool extendExisting, // if the current object is already // an array type, attach an extra diff --git a/src/apps/debugger/source_language/CppLanguage.cpp b/src/apps/debugger/source_language/CppLanguage.cpp index e67a1637ab..d1904648dc 100644 --- a/src/apps/debugger/source_language/CppLanguage.cpp +++ b/src/apps/debugger/source_language/CppLanguage.cpp @@ -123,10 +123,10 @@ CppLanguage::ParseTypeExpression(const BString &expression, return B_ERROR; if (arrayType == NULL) { - result = _resultType->CreateDerivedArrayType(size, true, + result = _resultType->CreateDerivedArrayType(0, size, true, arrayType); } else { - result = arrayType->CreateDerivedArrayType(size, true, + result = arrayType->CreateDerivedArrayType(0, size, true, arrayType); }