================ @@ -254,13 +254,17 @@ bool lldb_private::formatters::LibStdcppStringSummaryProvider( } else addr_of_string = valobj.GetAddressOf(scalar_is_load_addr, &addr_type); - if (addr_of_string != LLDB_INVALID_ADDRESS) { + + // We have to check for host address here + // because GetAddressOf returns INVALID for all non load addresses. + // But we can still format strings in host memory. + if (addr_of_string != LLDB_INVALID_ADDRESS || + addr_type == eAddressTypeHost) { ---------------- clayborg wrote:
> > Make sense to fix GetAddressOf to take advantage of the API it is > > implementing. If the address kind can be host and we can return a valid > > host address value, I would say we use it. We will need to look over all > > uses of this API internally if we do change it. > > If we decide to go forward with this refactor, I think we should probably > split this out into it's own independent PR and put this one on pause. As Jim > mentioned above there are currently places that make assumptions based on the > value object being host and getting back an invalid address, and we would > need to correct for that. I would be interesting to see how many places do this kind of pattern. If it is only a few locations, then yes a quick PR to enable this correctly would be nice, but if it is many, we can just copy the code that Jim mentions to work around the issue. https://github.com/llvm/llvm-project/pull/89110 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits