@@ -2725,6 +2725,14 @@ class DevtoolIdeSdkTests(DevtoolBase):
gdb_batch_cmd += " -ex 'print CppExample::test_string.compare(\"cpp-example-lib %s\")'" % magic_string
gdb_batch_cmd += " -ex 'print CppExample::test_string.compare(\"cpp-example-lib %saaa\")'" % magic_string
gdb_batch_cmd += " -ex 'list cpp-example-lib.hpp:14,14'"
+
+ # check if resolving std::vector works with python scripts
+ # break at line 56, because the line which initializes the vector
+ # may be optimized out by the compiler
+ gdb_batch_cmd += " -ex 'list cpp-example.cpp:55,55'"
+ gdb_batch_cmd += " -ex 'break cpp-example.cpp:56'"
+ gdb_batch_cmd += " -ex 'continue'"
+ gdb_batch_cmd += " -ex 'print numbers'"
gdb_batch_cmd += " -ex 'continue'"
return gdb_batch_cmd
@@ -2734,6 +2742,10 @@ class DevtoolIdeSdkTests(DevtoolBase):
self.assertIn("$2 = -3", gdb_output) # test.string.compare longer
self.assertIn(
'inline static const std::string test_string = "cpp-example-lib %s";' % magic_string, gdb_output)
+
+ # check if resolving std::vector works with python scripts
+ self.assertRegex(gdb_output, r"55\s+std::vector<int> numbers = \{1, 2, 3\};")
+ self.assertRegex(gdb_output, r"\$\d+ = std::vector of length 3, capacity 3 = \{1, 2, 3\}")
self.assertIn("exited normally", gdb_output)
def _gdb_cross_debugging_multi(self, qemu, recipe_name, example_exe, magic_string):