| Index: gdb/testsuite/gdb.python/py-symtab.exp
|
| diff --git a/gdb/testsuite/gdb.python/py-symtab.exp b/gdb/testsuite/gdb.python/py-symtab.exp
|
| index 1e55fd3d944903c8b3525f43ac5d46db056cf1c6..da0c3e4be2947f6d6aa510e46d5b9072a86650bc 100644
|
| --- a/gdb/testsuite/gdb.python/py-symtab.exp
|
| +++ b/gdb/testsuite/gdb.python/py-symtab.exp
|
| @@ -16,26 +16,14 @@
|
| # This file is part of the GDB testsuite. It tests the mechanism
|
| # exposing values to Python.
|
|
|
| -if $tracelevel then {
|
| - strace $tracelevel
|
| -}
|
| -
|
| load_lib gdb-python.exp
|
|
|
| -set testfile "py-symbol"
|
| -set srcfile ${testfile}.c
|
| -set binfile ${objdir}/${subdir}/${testfile}
|
| -if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
|
| - untested "Couldn't compile ${srcfile}"
|
| +standard_testfile py-symbol.c
|
| +
|
| +if {[prepare_for_testing $testfile.exp $testfile $srcfile debug]} {
|
| return -1
|
| }
|
|
|
| -# Start with a fresh gdb.
|
| -gdb_exit
|
| -gdb_start
|
| -gdb_reinitialize_dir $srcdir/$subdir
|
| -gdb_load ${binfile}
|
| -
|
| # Skip all tests if Python scripting is not enabled.
|
| if { [skip_python_tests] } { continue }
|
|
|
| @@ -47,16 +35,25 @@ if ![runto_main] then {
|
| global hex decimal
|
|
|
| # Setup and get the symbol table.
|
| -gdb_breakpoint [gdb_get_line_number "Block break here."]
|
| +set line_no [gdb_get_line_number "Block break here."]
|
| +gdb_breakpoint $line_no
|
| gdb_continue_to_breakpoint "Block break here."
|
| gdb_py_test_silent_cmd "python frame = gdb.selected_frame()" "Get Frame" 0
|
| gdb_py_test_silent_cmd "python sal = frame.find_sal()" "Get block" 0
|
| gdb_py_test_silent_cmd "python symtab = sal.symtab" "Get block" 0
|
| +gdb_py_test_silent_cmd "python global_block = symtab.global_block()" "Get global block" 0
|
| +gdb_py_test_silent_cmd "python static_block = symtab.static_block()" "Get static block" 0
|
| +gdb_py_test_silent_cmd "python global_symbols = \[\]; static_symbols = \[\]" "Set up symbol name lists" 0
|
| +gdb_py_test_silent_cmd "python for sym in global_block: global_symbols.append(sym.name)" "Get global symbol names" 0
|
| +gdb_py_test_silent_cmd "python for sym in static_block: static_symbols.append(sym.name)" "Get static symbol names" 0
|
| +gdb_py_test_silent_cmd "step" "Step to the next line" 0
|
| +gdb_py_test_silent_cmd "python new_pc = gdb.selected_frame().find_sal().pc" "Get new PC" 0
|
|
|
| # Test sal.
|
| gdb_test "python print sal.symtab" ".*gdb.python/py-symbol.c.*" "Test symtab"
|
| gdb_test "python print sal.pc" "${decimal}" "Test sal.pc"
|
| -gdb_test "python print sal.line" "42" "Test sal.line"
|
| +gdb_test "python print sal.last == (new_pc - 1)" "True" "Test sal.last"
|
| +gdb_test "python print sal.line" "$line_no" "Test sal.line"
|
| gdb_test "python print sal.is_valid()" "True" "Test sal.is_valid"
|
|
|
| # Test symbol table.
|
| @@ -64,6 +61,12 @@ gdb_test "python print symtab.filename" ".*gdb.python/py-symbol.c.*" "Test symta
|
| gdb_test "python print symtab.objfile" "<gdb.Objfile object at ${hex}>" "Test symtab.objfile"
|
| gdb_test "python print symtab.fullname()" "testsuite/gdb.python/py-symbol.c.*" "Test symtab.fullname"
|
| gdb_test "python print symtab.is_valid()" "True" "Test symtab.is_valid()"
|
| +gdb_test "python print \"qq\" in global_symbols" "True" "Test qq in global symbols"
|
| +gdb_test "python print \"func\" in global_symbols" "True" "Test func in global symbols"
|
| +gdb_test "python print \"main\" in global_symbols" "True" "Test main in global symbols"
|
| +gdb_test "python print \"int\" in static_symbols" "True" "Test int in static symbols"
|
| +gdb_test "python print \"char\" in static_symbols" "True" "Test char in static symbols"
|
| +gdb_test "python print \"simple_struct\" in static_symbols" "True" "Test simple_struct in static symbols"
|
|
|
| # Test is_valid when the objfile is unloaded. This must be the last
|
| # test as it unloads the object file in GDB.
|
|
|