[Lldb-commits] [lldb] 1633190 - [LLDB][NFC] Fix optons parsing and misc. reliability in CommandObjectThread

Slava Gurevich via lldb-commits lldb-commits at lists.llvm.org
Wed Aug 17 12:20:23 PDT 2022


Author: Slava Gurevich
Date: 2022-08-17T12:20:10-07:00
New Revision: 163319070947a51beed9d3773bf53d3d48120db8

URL: https://github.com/llvm/llvm-project/commit/163319070947a51beed9d3773bf53d3d48120db8
DIFF: https://github.com/llvm/llvm-project/commit/163319070947a51beed9d3773bf53d3d48120db8.diff

LOG: [LLDB][NFC] Fix optons parsing and misc. reliability in CommandObjectThread

* Fix broken option parsing in SetOptionValue()

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

Added: 
    

Modified: 
    lldb/source/Commands/CommandObjectThread.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/source/Commands/CommandObjectThread.cpp b/lldb/source/Commands/CommandObjectThread.cpp
index 5d7f3c16f3894..7b739fef0a7a4 100644
--- a/lldb/source/Commands/CommandObjectThread.cpp
+++ b/lldb/source/Commands/CommandObjectThread.cpp
@@ -62,15 +62,13 @@ class CommandObjectThreadBacktrace : public CommandObjectIterateOverThreads {
       const int short_option = m_getopt_table[option_idx].val;
 
       switch (short_option) {
-      case 'c': {
-        int32_t input_count = 0;
-        if (option_arg.getAsInteger(0, m_count)) {
+      case 'c':
+        if (option_arg.getAsInteger(0, m_count) || (m_count < 0)) {
           m_count = UINT32_MAX;
           error.SetErrorStringWithFormat(
               "invalid integer value for option '%c'", short_option);
-        } else if (input_count < 0)
-          m_count = UINT32_MAX;
-      } break;
+        }
+        break;
       case 's':
         if (option_arg.getAsInteger(0, m_start))
           error.SetErrorStringWithFormat(
@@ -991,7 +989,7 @@ class CommandObjectThreadUntil : public CommandObjectParsed {
         }
 
         LineEntry function_start;
-        uint32_t index_ptr = 0, end_ptr;
+        uint32_t index_ptr = 0, end_ptr = UINT32_MAX;
         std::vector<addr_t> address_list;
 
         // Find the beginning & end index of the function, but first make


        


More information about the lldb-commits mailing list