================
@@ -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

Reply via email to