[Lldb-commits] [lldb] [LLDB][SBSaveCore] Add Extension to Save a thread and N pointers dead (PR #111601)
via lldb-commits
lldb-commits at lists.llvm.org
Tue Oct 8 16:29:20 PDT 2024
================
@@ -0,0 +1,31 @@
+#extend lldb::SBSaveCoreOptions {
+#ifdef SWIGPYTHON
+ %pythoncode% {
+ '''Add a thread to the SaveCoreOptions thread list, and follow it's children N pointers deep, adding each memory region to the SaveCoreOptions Memory region list.'''
+ def save_thread_with_heaps(self, thread, num_pointers_deep = 3):
+ self.AddThread(thread)
+ frame = thread.GetFrameAtIndex(0)
+ process = thread.GetProcess()
+ queue = []
+ for var in frame.locals:
+ if var.TypeIsPointerType():
+ queue.append(var.Dereference())
+
+ while (num_pointers_deep > 0 and len(queue) > 0):
+ queue_size = len(queue)
+ for i in range(0, queue_size):
+ var = queue.pop(0)
+ memory_region = lldb.SBMemoryRegionInfo()
+ process.GetMemoryRegionInfo(var.GetAddress().GetOffset(), memory_region)
+ self.AddMemoryRegionToSave(memory_region)
----------------
jeffreytan81 wrote:
What if the pointer points to inaccessible memory or the pointer is corrupted? You need to check the validity of the memory region?
https://github.com/llvm/llvm-project/pull/111601
More information about the lldb-commits
mailing list