[Lldb-commits] [PATCH] D151392: Fix SBValue::FindValue for file static variables

Jim Ingham via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue May 30 17:13:45 PDT 2023


This revision was automatically updated to reflect the committed changes.
Closed by commit rG14186773e79b: Fix SBValue::FindValue for file static variables (authored by jingham).

Changed prior to commit:
  https://reviews.llvm.org/D151392?vs=525391&id=526852#toc

Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D151392

Files:
  lldb/source/API/SBFrame.cpp
  lldb/test/API/python_api/process/TestProcessAPI.py
  lldb/test/API/python_api/process/main.cpp


Index: lldb/test/API/python_api/process/main.cpp
===================================================================
--- lldb/test/API/python_api/process/main.cpp
+++ lldb/test/API/python_api/process/main.cpp
@@ -3,7 +3,7 @@
 
 // This simple program is to test the lldb Python API related to process.
 
-char my_char = 'u';
+static char my_char = 'u';
 char my_cstring[] = "lldb.SBProcess.ReadCStringFromMemory() works!";
 char *my_char_ptr = (char *)"Does it work?";
 uint32_t my_uint32 = 12345;
Index: lldb/test/API/python_api/process/TestProcessAPI.py
===================================================================
--- lldb/test/API/python_api/process/TestProcessAPI.py
+++ lldb/test/API/python_api/process/TestProcessAPI.py
@@ -49,8 +49,8 @@
         )
         frame = thread.GetFrameAtIndex(0)
 
-        # Get the SBValue for the global variable 'my_char'.
-        val = frame.FindValue("my_char", lldb.eValueTypeVariableGlobal)
+        # Get the SBValue for the file static variable 'my_char'.
+        val = frame.FindValue("my_char", lldb.eValueTypeVariableStatic)
         self.DebugSBValue(val)
 
         # Due to the typemap magic (see lldb.swig), we pass in 1 to ReadMemory and
@@ -149,8 +149,8 @@
         )
         frame = thread.GetFrameAtIndex(0)
 
-        # Get the SBValue for the global variable 'my_char'.
-        val = frame.FindValue("my_char", lldb.eValueTypeVariableGlobal)
+        # Get the SBValue for the static variable 'my_char'.
+        val = frame.FindValue("my_char", lldb.eValueTypeVariableStatic)
         self.DebugSBValue(val)
 
         # If the variable does not have a load address, there's no sense
Index: lldb/source/API/SBFrame.cpp
===================================================================
--- lldb/source/API/SBFrame.cpp
+++ lldb/source/API/SBFrame.cpp
@@ -602,7 +602,8 @@
                 stop_if_block_is_inlined_function,
                 [frame](Variable *v) { return v->IsInScope(frame); },
                 &variable_list);
-          if (value_type == eValueTypeVariableGlobal) {
+          if (value_type == eValueTypeVariableGlobal 
+              || value_type == eValueTypeVariableStatic) {
             const bool get_file_globals = true;
             VariableList *frame_vars = frame->GetVariableList(get_file_globals,
                                                               nullptr);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D151392.526852.patch
Type: text/x-patch
Size: 2374 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20230531/5e7c2454/attachment-0001.bin>


More information about the lldb-commits mailing list