diff --git a/src/apps/debugger/value/value_nodes/BMessageValueNode.cpp b/src/apps/debugger/value/value_nodes/BMessageValueNode.cpp index 0f160e9bc8..dff728b971 100644 --- a/src/apps/debugger/value/value_nodes/BMessageValueNode.cpp +++ b/src/apps/debugger/value/value_nodes/BMessageValueNode.cpp @@ -394,8 +394,17 @@ BMessageValueNode::ResolvedLocationAndValue(ValueLoader* valueLoader, fType->ResolveRawType(false)); AddressType* addressType = dynamic_cast(fType); if (addressType != NULL) { + BVariant address; baseType = dynamic_cast(addressType->BaseType() ->ResolveRawType(false)); + error = valueLoader->LoadValue(location, valueType, false, + address); + if (error != B_OK) + return error; + + ValuePieceLocation pieceLocation; + pieceLocation.SetToMemory(address.ToUInt64()); + location->SetPieceAt(0, pieceLocation); } _location = location; @@ -529,6 +538,7 @@ BMessageValueNode::ResolvedLocationAndValue(ValueLoader* valueLoader, error = fMessage.Unflatten((const char *)messageBuffer); TRACE_LOCALS("BMessage: Unflatten result: %s\n", strerror(error)); + if (error != B_OK) return error;