mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-07 13:36:09 +00:00

This was just a thinko. The API StackFrame::GetVariableList takes a bool for "get_file_globals" which if true will also find file statics and file globals. But we only were passing that as true if the ValueType was eValueTypeVariableGlobal, which meant that we never find file statics. It's okay if we cast too wide a net when we do GetVariableList as later on we check against the ValueType to filter globals from statics. There was a test that had a whole bunch of globals and tested FindValue on all of them, but had no statics. So I just made one of the globals a file static, which verifies the fix. Differential Revision: https://reviews.llvm.org/D151392
34 lines
814 B
C++
34 lines
814 B
C++
#include <stdio.h>
|
|
#include <stdint.h>
|
|
|
|
// This simple program is to test the lldb Python API related to process.
|
|
|
|
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;
|
|
int my_int = 0;
|
|
|
|
int main (int argc, char const *argv[])
|
|
{
|
|
for (int i = 0; i < 3; ++i) {
|
|
printf("my_char='%c'\n", my_char);
|
|
++my_char;
|
|
}
|
|
|
|
printf("after the loop: my_char='%c'\n", my_char); // 'my_char' should print out as 'x'.
|
|
|
|
return 0; // Set break point at this line and check variable 'my_char'.
|
|
// Use lldb Python API to set memory content for my_int and check the result.
|
|
}
|
|
|
|
char test_read (char *ptr)
|
|
{
|
|
return *ptr;
|
|
}
|
|
|
|
void test_write (char *ptr, char c)
|
|
{
|
|
*ptr = c;
|
|
}
|