gdb_py_test_silent_cmd "python block = frame.block()" "Get block" 0
# Test is_argument attribute.
-gdb_py_test_silent_cmd "python arg = gdb.lookup_symbol(\"arg\")" "Get variable a" 0
+gdb_py_test_silent_cmd "python arg = gdb.lookup_symbol(\"arg\")" "Get variable arg" 0
gdb_test "python print (arg\[0\].is_variable)" "False" "Test arg.is_variable"
gdb_test "python print (arg\[0\].is_constant)" "False" "Test arg.is_constant"
gdb_test "python print (arg\[0\].is_argument)" "True" "Test arg.is_argument"
gdb_test "python print (arg\[0\].is_function)" "False" "Test arg.is_function"
# Test is_function attribute.
-gdb_py_test_silent_cmd "python func = frame.block().function" "Get block" 0
+gdb_py_test_silent_cmd "python func = block.function" "Get block function" 0
gdb_test "python print (func.is_variable)" "False" "Test func.is_variable"
gdb_test "python print (func.is_constant)" "False" "Test func.is_constant"
gdb_test "python print (func.is_argument)" "False" "Test func.is_argument"
gdb_test "python print (func.is_function)" "True" "Test func.is_function"
+
+# Test attributes of func.
gdb_test "python print (func.name)" "func" "Test func.name"
gdb_test "python print (func.print_name)" "func" "Test func.print_name"
gdb_test "python print (func.linkage_name)" "func" "Test func.linkage_name"
gdb_test "python print (func.addr_class == gdb.SYMBOL_LOC_BLOCK)" "True" "Test func.addr_class"
gdb_breakpoint [gdb_get_line_number "Break at end."]
-gdb_continue_to_breakpoint "Break at end."
+gdb_continue_to_breakpoint "Break at end for variable a" ".*Break at end.*"
gdb_py_test_silent_cmd "python frame = gdb.selected_frame()" "Get Frame" 0
# Test is_variable attribute.
gdb_test "python print (a\[0\].is_constant)" "False" "Test a.is_constant"
gdb_test "python print (a\[0\].is_argument)" "False" "Test a.is_argument"
gdb_test "python print (a\[0\].is_function)" "False" "Test a.is_function"
+
+# Test attributes of a.
gdb_test "python print (a\[0\].addr_class == gdb.SYMBOL_LOC_COMPUTED)" "True" "Test a.addr_class"
gdb_test "python print (a\[0\].value())" \
"print whether a needs a frame"
# Test is_constant attribute
-gdb_py_test_silent_cmd "python t = gdb.lookup_symbol(\"one\")" "Get variable a" 0
+gdb_py_test_silent_cmd "python t = gdb.lookup_symbol(\"one\")" "Get constant t" 0
gdb_test "python print (t\[0\].is_variable)" "False" "Test t.is_variable"
gdb_test "python print (t\[0\].is_constant)" "True" "Test t.is_constant"
gdb_test "python print (t\[0\].is_argument)" "False" "Test t.is_argument"
gdb_test "python print (t\[0\].is_function)" "False" "Test t.is_function"
+
+# Test attributes of t.
gdb_test "python print (t\[0\].addr_class == gdb.SYMBOL_LOC_CONST)" "True" "Test t.addr_class"
# Test type attribute.
gdb_breakpoint [gdb_get_line_number "Break in class."]
gdb_continue_to_breakpoint "Break in class."
-gdb_py_test_silent_cmd "python cplusframe = gdb.selected_frame()" "Get Frame" 0
-gdb_py_test_silent_cmd "python cplusfunc = cplusframe.block().function" "Get block" 0
-gdb_test "python print (cplusfunc.is_variable)" "False" "Test func.is_variable"
-gdb_test "python print (cplusfunc.is_constant)" "False" "Test func.is_constant"
-gdb_test "python print (cplusfunc.is_argument)" "False" "Test func.is_argument"
-gdb_test "python print (cplusfunc.is_function)" "True" "Test func.is_function"
-gdb_test "python print (cplusfunc.name)" "SimpleClass::valueofi().*" "Test func.name"
-gdb_test "python print (cplusfunc.print_name)" "SimpleClass::valueofi().*" "Test func.print_name"
-gdb_test "python print (cplusfunc.linkage_name)" "SimpleClass::valueofi().*" "Test func.linkage_name"
-gdb_test "python print (cplusfunc.addr_class == gdb.SYMBOL_LOC_BLOCK)" "True" "Test func.addr_class"
+gdb_py_test_silent_cmd "python cplusframe = gdb.selected_frame()" "Get Frame at class" 0
+gdb_py_test_silent_cmd "python cplusfunc = cplusframe.block().function" "Get function at class" 0
+
+gdb_test "python print (cplusfunc.is_variable)" \
+ "False" "Test cplusfunc.is_variable"
+gdb_test "python print (cplusfunc.is_constant)" \
+ "False" "Test cplusfunc.is_constant"
+gdb_test "python print (cplusfunc.is_argument)" \
+ "False" "Test cplusfunc.is_argument"
+gdb_test "python print (cplusfunc.is_function)" \
+ "True" "Test cplusfunc.is_function"
+
+gdb_test "python print (cplusfunc.name)" "SimpleClass::valueofi().*" "Test method.name"
+gdb_test "python print (cplusfunc.print_name)" "SimpleClass::valueofi().*" "Test method.print_name"
+gdb_test "python print (cplusfunc.linkage_name)" "SimpleClass::valueofi().*" "Test method.linkage_name"
+gdb_test "python print (cplusfunc.addr_class == gdb.SYMBOL_LOC_BLOCK)" "True" "Test method.addr_class"
# Test is_valid when the objfile is unloaded. This must be the last
# test as it unloads the object file in GDB.
fail "Cannot run to main."
return 0
}
+
gdb_breakpoint [gdb_get_line_number "Break at end."]
-gdb_continue_to_breakpoint "Break at end."
+gdb_continue_to_breakpoint "Break at end for symbol validity" ".*Break at end.*"
gdb_py_test_silent_cmd "python a = gdb.lookup_symbol(\'a\')" "Get variable a" 0
gdb_test "python print (a\[0\].is_valid())" "True" "Test symbol validity"
delete_breakpoints
gdb_unload
-gdb_test "python print (a\[0\].is_valid())" "False" "Test symbol validity"
+gdb_test "python print (a\[0\].is_valid())" "False" "Test symbol non-validity"
gdb_test_no_output "python a = None" "Test symbol destructor"