[Lldb-commits] [PATCH] D105181: [lldb][AArch64] Add memory tag writing to lldb
David Spickett via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Thu Jul 8 01:59:48 PDT 2021
DavidSpickett added inline comments.
================
Comment at: lldb/source/Target/Process.cpp:6108
+ range_callback) {
Architecture *arch = GetTarget().GetArchitecturePlugin();
const MemoryTagManager *tag_manager =
----------------
DavidSpickett wrote:
> omjavaid wrote:
> > The point I was trying to establish above is that GetMemoryTagManagerImpl function here may remain as it was i-e GetMemoryTagManager. It could only run once on Process object creation. We know our process architecture so we can host a pointer to relevent tag manager in Process class. All the tag ranges corresponding to the current process address space should be able to get a pointer to MemoryTagManager as was being done previously.
> I see what you mean. I'm going to try this on top of main as a new change, then I'll refactor this based on that if it works out.
> It could only run once on Process object creation.
Turns out that the arch object, where the plugin is stored, changes 2/3 times between process creation and loading the program file. So we could store the pointer but we'd have to invalidate it on all these events. Ultimately we'd spend the time saved doing invalidation.
Which is probably why things like Target::GetCallableLoadAddress just get a new pointer each time.
You gave me some good ideas about simplifying this whole process though so I'm still going to work on that.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D105181/new/
https://reviews.llvm.org/D105181
More information about the lldb-commits
mailing list