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