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
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits