diff options
Diffstat (limited to 'packages/Python/lldbsuite/test/tools/lldb-mi/variable/main.cpp')
-rw-r--r-- | packages/Python/lldbsuite/test/tools/lldb-mi/variable/main.cpp | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/packages/Python/lldbsuite/test/tools/lldb-mi/variable/main.cpp b/packages/Python/lldbsuite/test/tools/lldb-mi/variable/main.cpp new file mode 100644 index 0000000..8c79539 --- /dev/null +++ b/packages/Python/lldbsuite/test/tools/lldb-mi/variable/main.cpp @@ -0,0 +1,152 @@ +//===-- main.cpp ------------------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include <cstdint> +#include <string> + +struct complex_type +{ + int i; + struct { long l; } inner; + complex_type *complex_ptr; +}; + +struct pcomplex_type : complex_type +{ + pcomplex_type(const complex_type &complx_base, const complex_type &complx_member) + : complex_type(complx_base), complx(complx_member) { } + complex_type complx; + static int si; +}; + +int pcomplex_type::si; + +struct struct_with_unions +{ + struct_with_unions(): u_i(1), u1(-1) {} + union + { + int u_i; + int u_j; + }; + union + { + int u1; + struct + { + short s1; + short s2; + }; + }; +}; + +void +var_update_test(void) +{ + long l = 1; + complex_type complx = { 3, { 3L }, &complx }; + complex_type complx_array[2] = { { 4, { 4L }, &complx_array[1] }, { 5, { 5 }, &complx_array[0] } }; + // BP_var_update_test_init + + l = 0; + // BP_var_update_test_l + + complx.inner.l = 2; + // BP_var_update_test_complx + + complx_array[1].inner.l = 4; + // BP_var_update_test_complx_array +} + +void +var_list_children_test(void) +{ + complex_type complx = { 3, { 3L }, &complx }; + complex_type complx_array[2] = { { 4, { 4L }, &complx_array[1] }, { 5, { 5 }, &complx_array[0] } }; + pcomplex_type pcomplx({ 6, { 6L }, &pcomplx}, { 7, { 7L }, &pcomplx}); + + // BP_var_list_children_test +} + +void +gdb_set_show_print_char_array_as_string_test(void) +{ + const char *cp = "\t\"hello\"\n"; + const char ca[] = "\t\"hello\"\n"; + const char16_t *u16p = u"\t\"hello\"\n"; + const char16_t u16a[] = u"\t\"hello\"\n"; + const char32_t *u32p = U"\t\"hello\"\n"; + const char32_t u32a[] = U"\t\"hello\"\n"; + + const char16_t* u16p_rus = u"\\Аламо-сквер"; + const char16_t u16a_rus[] = u"\\Бейвью"; + const char32_t* u32p_rus = U"\\Чайнатаун"; + const char32_t u32a_rus[] = U"\\Догпатч"; + + // BP_gdb_set_show_print_char_array_as_string_test +} + +void +cpp_stl_types_test(void) +{ + std::string std_string = "hello"; + // BP_cpp_stl_types_test +} + +void +unnamed_objects_test(void) +{ + struct_with_unions swu; + // BP_unnamed_objects_test +} + +struct not_str +{ + not_str(char _c, int _f) + : c(_c), f(_f) { } + char c; + int f; +}; + +void +gdb_set_show_print_expand_aggregates(void) +{ + complex_type complx = { 3, { 3L }, &complx }; + complex_type complx_array[2] = { { 4, { 4L }, &complx_array[1] }, { 5, { 5 }, &complx_array[0] } }; + not_str nstr('a', 0); + + // BP_gdb_set_show_print_expand_aggregates +} + +void +gdb_set_show_print_aggregate_field_names(void) +{ + complex_type complx = { 3, { 3L }, &complx }; + complex_type complx_array[2] = { { 4, { 4L }, &complx_array[1] }, { 5, { 5 }, &complx_array[0] } }; + + // BP_gdb_set_show_print_aggregate_field_names +} + +int g_MyVar = 3; +static int s_MyVar = 4; + +int +main(int argc, char const *argv[]) +{ + int a = 10, b = 20; + s_MyVar = a + b; + var_update_test(); + var_list_children_test(); + gdb_set_show_print_char_array_as_string_test(); + cpp_stl_types_test(); + unnamed_objects_test(); + gdb_set_show_print_expand_aggregates(); + gdb_set_show_print_aggregate_field_names(); + return 0; // BP_return +} |