[Lldb-commits] [PATCH] D118794: [lldb] Remove non-address bits from read/write addresses in lldb

Muhammad Omair Javaid via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Apr 7 02:00:14 PDT 2022


omjavaid added a comment.

In D118794#3405724 <https://reviews.llvm.org/D118794#3405724>, @DavidSpickett wrote:

> Switch to removing non-address bits in lldb instead of lldb-server.
>
> The breakpoint issues I mention only really happen if you try to break on a tagged
> function pointer. Which is pretty niche, but I hope to address it later anyway.
>
> On the issue of whether to use FixData vs FixCode there's 2 maybe 3 ways to go:
>
> - Assume that they're the same, which does work for Linux, for now.
> - Add a method that does both fixes, on the assumption that the virtual address size for code and data is the same so no harm done and all bits will be removed either way.
> - Extensively track whether addresses refer to code or data. In some situations this is possible (looking at the exec bits of a memory mapping for example) but I don't have a great idea what that looks like at this time.
>
> Option 2 seems like a good way to go for now.

So on the topic of separate code/data address masks (Linux specific). I dont recall if the actual position of the mask in the address changes or not? It may be the case that we have separate code and address masks but their position in the address bits is fixed for both. Which will mean we actually dont need two separate functions. I tried fidning it out in Linux documentation but it only says "Separate masks are exposed for data pointers and instruction pointers". It doesnt specifically says if the location of the both can be different or not.
Do you have any explanation on this from AARM


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D118794/new/

https://reviews.llvm.org/D118794



More information about the lldb-commits mailing list