[Lldb-commits] [PATCH] D122411: [lldb][AArch64] Fix corefile memory reads when there are non-address bits

David Spickett via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Mon Apr 25 05:59:18 PDT 2022

DavidSpickett added a comment.

The current assumption is that once you've got a valid (currently anything non-zero) mask then that's it, it's not going to change. I think a future extension could change the meaning of the existing non-address bits at runtime, but that wouldn't be a problem unless you're something like the tagging commands. 99% of the time we want to remove all non-address bits no matter what they mean.

Changing the virtual address size is the real problem if it ever happens but given that the stack is assumed to be at the top of memory, it would be difficult. Shrinking means cutting off/moving the stack down (with some kind of position independent stack?) and growing it means you can't make top of stack == end of memory assumptions. You could do it with some kind of fork or restart but I think lldb would just handle that fine like it normally does.

Side note: the "0 means not read yet" pattern seems like it could lead to some waste with a target that genuinely has no mask but that's not relevant to this change.

  rG LLVM Github Monorepo



More information about the lldb-commits mailing list