jasonmolenda wrote:

Felipe and I were discussing this earlier.  We started (I started) with the 
model of removing metadata bits -- e.g. Pointer Authentication, or Top Byte 
Ignore -- from addresses as early as possible in the lldb codebase.  We would 
pass around "Fixed" or sanitized or stripped address which only had the 
addressable bits internally.  For user visible values, e.g. a pointer 
authenticated pointer value, we print the value with metadata bits, and then we 
print it separately with only the addressable bits, if it points to a symbol so 
we can be sure it's an address.

c. January 2022 (`[lldb] Remove non-address bits from read/write addresses in 
lldb`), we started removing metadata bits from addr_t's before we ReadMemory or 
WriteMemory the addresses.  So it's possible/safe for us to preserve metadata 
bits a lot further through lldb's handling of the address, e.g. if they might 
be used in an expression running in the inferior, while still being able to 
read or write data at that address.  So a lot of our initial address clearing 
is no longer needed, and may cause problems when those metadata bits need 
preserving for correct processing.

https://github.com/llvm/llvm-project/pull/150537
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to