jingham added a comment.

Except for the comment comment this looks fine.

I think the Host -> Load address code isn't quite right, though it looks like 
that's not your doing.

The main reason why you would copy a ValueObject into Host memory it is to 
freeze-dry it as a ConstResult.  Since that is supposed to represent the object 
at that point in time, it should only be valid to you ask the ValueObject to 
produce its children if the process is at the same StopID as when the 
ValueObject was made.  Then the ValueObject system should fetch that more data 
and include it in the freeze-dried object.  But if the StopID has moved on, you 
should just give an error: "Can't travel back in time to fetch that extra data".

At the ValueObject level, however, we only know how the data is stored (in Host 
or Process) and not why.  So it's harder to get this behavior right.

As I said, however, I don't think this planned design was ever carried out 
successfully, so I don't think this will have broken anything.



================
Comment at: source/Core/ValueObject.cpp:162-163
+    // of the "next" member of LinkedListNode will become load addresses if
+    // we have a live process, or remain what a file address if it what a
+    // file address.
+    if (process_is_alive && is_pointer_or_ref)
----------------
"remain a file address if it was a file address."?


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

https://reviews.llvm.org/D69273



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to