199451b44SJordan Rupprecht #include <stdio.h>
299451b44SJordan Rupprecht #include <stdint.h>
399451b44SJordan Rupprecht
499451b44SJordan Rupprecht // This simple program is to test the lldb Python API SBValue.GetChildAtIndex().
599451b44SJordan Rupprecht
699451b44SJordan Rupprecht int g_my_int = 100;
799451b44SJordan Rupprecht
899451b44SJordan Rupprecht const char *days_of_week[7] = { "Sunday",
999451b44SJordan Rupprecht "Monday",
1099451b44SJordan Rupprecht "Tuesday",
1199451b44SJordan Rupprecht "Wednesday",
1299451b44SJordan Rupprecht "Thursday",
1399451b44SJordan Rupprecht "Friday",
1499451b44SJordan Rupprecht "Saturday" };
1599451b44SJordan Rupprecht
1699451b44SJordan Rupprecht const char *weekdays[5] = { "Monday",
1799451b44SJordan Rupprecht "Tuesday",
1899451b44SJordan Rupprecht "Wednesday",
1999451b44SJordan Rupprecht "Thursday",
2099451b44SJordan Rupprecht "Friday" };
2199451b44SJordan Rupprecht
2299451b44SJordan Rupprecht const char **g_table[2] = { days_of_week, weekdays };
2399451b44SJordan Rupprecht
2499451b44SJordan Rupprecht typedef int MyInt;
2599451b44SJordan Rupprecht
2699451b44SJordan Rupprecht struct MyStruct
2799451b44SJordan Rupprecht {
2899451b44SJordan Rupprecht int a;
2999451b44SJordan Rupprecht int b;
3099451b44SJordan Rupprecht };
3199451b44SJordan Rupprecht
32f05e2fb0SJim Ingham struct MyBiggerStruct
33f05e2fb0SJim Ingham {
34f05e2fb0SJim Ingham int a;
35f05e2fb0SJim Ingham int b;
36f05e2fb0SJim Ingham int c;
37f05e2fb0SJim Ingham };
38f05e2fb0SJim Ingham
39*3707c540Sjimingham struct Container
40*3707c540Sjimingham {
41*3707c540Sjimingham int discriminator;
42*3707c540Sjimingham union Data {
43*3707c540Sjimingham struct MyStruct small;
44*3707c540Sjimingham struct MyBiggerStruct big;
45*3707c540Sjimingham } data;
46*3707c540Sjimingham };
47*3707c540Sjimingham
main(int argc,char const * argv[])4899451b44SJordan Rupprecht int main (int argc, char const *argv[])
4999451b44SJordan Rupprecht {
5099451b44SJordan Rupprecht uint32_t uinthex = 0xE0A35F10;
5199451b44SJordan Rupprecht int32_t sinthex = 0xE0A35F10;
5299451b44SJordan Rupprecht
5399451b44SJordan Rupprecht int i;
5499451b44SJordan Rupprecht MyInt a = 12345;
5599451b44SJordan Rupprecht struct MyStruct s = {11, 22};
56f05e2fb0SJim Ingham struct MyBiggerStruct f = { 33, 44, 55 };
57*3707c540Sjimingham struct Container my_container;
58*3707c540Sjimingham my_container.data.big = f;
5999451b44SJordan Rupprecht int *my_int_ptr = &g_my_int;
6099451b44SJordan Rupprecht printf("my_int_ptr points to location %p\n", my_int_ptr);
61710276a2SWalter Erquinigo int *fixed_int_ptr = (int*)(void*)0xAA;
62710276a2SWalter Erquinigo int *another_fixed_int_ptr = (int*)(void*)0xAA;
63710276a2SWalter Erquinigo int *a_null_int_ptr = NULL;
6499451b44SJordan Rupprecht const char **str_ptr = days_of_week;
6599451b44SJordan Rupprecht for (i = 0; i < 7; ++i)
6699451b44SJordan Rupprecht printf("%s\n", str_ptr[i]); // Break at this line
6799451b44SJordan Rupprecht // and do str_ptr_val.GetChildAtIndex(5, lldb.eNoDynamicValues, True).
6899451b44SJordan Rupprecht
6999451b44SJordan Rupprecht return 0;
7099451b44SJordan Rupprecht }
71