[Lldb-commits] [lldb] 793924d - Fix an incorrect assumption in "thread until": code with debug info is not always in a function.

Jim Ingham via lldb-commits lldb-commits at lists.llvm.org
Mon Feb 14 15:54:08 PST 2022


Author: Jim Ingham
Date: 2022-02-14T15:53:24-08:00
New Revision: 793924dd5f2ad0663f77a09f09d11adaa4ce2b91

URL: https://github.com/llvm/llvm-project/commit/793924dd5f2ad0663f77a09f09d11adaa4ce2b91
DIFF: https://github.com/llvm/llvm-project/commit/793924dd5f2ad0663f77a09f09d11adaa4ce2b91.diff

LOG: Fix an incorrect assumption in "thread until": code with debug info is not always in a function.

Some dyld cross library stubs can have line information but no function.  Make sure you
check that you have a valid Function object before asking it questions.

Differential Revision: https://reviews.llvm.org/D119297

Added: 
    

Modified: 
    lldb/source/Commands/CommandObjectThread.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/source/Commands/CommandObjectThread.cpp b/lldb/source/Commands/CommandObjectThread.cpp
index 4108adfbec0d..bd491e5e4603 100644
--- a/lldb/source/Commands/CommandObjectThread.cpp
+++ b/lldb/source/Commands/CommandObjectThread.cpp
@@ -1012,7 +1012,14 @@ class CommandObjectThreadUntil : public CommandObjectParsed {
         uint32_t index_ptr = 0, end_ptr;
         std::vector<addr_t> address_list;
 
-        // Find the beginning & end index of the        
+        // Find the beginning & end index of the function, but first make
+        // sure it is valid:
+        if (!sc.function) {
+          result.AppendErrorWithFormat("Have debug information but no "
+                                       "function info - can't get until range.");
+          return false;
+        }
+
         AddressRange fun_addr_range = sc.function->GetAddressRange();
         Address fun_start_addr = fun_addr_range.GetBaseAddress();
         line_table->FindLineEntryByAddress(fun_start_addr, function_start,


        


More information about the lldb-commits mailing list