diff options
author | Yao Qi <yao@codesourcery.com> | 2013-03-15 01:41:29 +0000 |
---|---|---|
committer | Yao Qi <yao@codesourcery.com> | 2013-03-15 01:41:29 +0000 |
commit | 0a251e08fa4e7130f05462ecc9f60e6683cdefca (patch) | |
tree | c79ccfc1f502d7e7d48c54b67720381603201b98 /gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp | |
parent | 2c415c0f382fd6361d9d702ebdd71cd6d6a06d19 (diff) | |
download | gdb-0a251e08fa4e7130f05462ecc9f60e6683cdefca.zip gdb-0a251e08fa4e7130f05462ecc9f60e6683cdefca.tar.gz gdb-0a251e08fa4e7130f05462ecc9f60e6683cdefca.tar.bz2 |
gdb/testsuite/
* gdb.threads/non-ldr-exc-1.exp (do_test): Fix the indent of
using with_test_prefix.
* gdb.threads/non-ldr-exc-2.exp (do_test): Likewise.
* gdb.threads/non-ldr-exc-3.exp (do_test): Likewise.
* gdb.threads/non-ldr-exc-4.exp (do_test): Likewise.
* gdb.threads/watchpoint-fork.exp (test): Likewise.
* gdb.base/break-interp.exp (test_core): Likewise.
(test_attach_gdb): Likewise.
* gdb.base/catch-load.exp (one_catch_load_test): Likewise.
* gdb.base/disp-step-syscall.exp (disp_step_cross_syscall):
Likewise.
* gdb.base/jit-so.exp (one_jit_test): Likewise.
* gdb.base/jit.exp (one_jit_test): Likewise.
* gdb.base/sepdebug.exp (test_different_dir): Likewise.
* gdb.dwarf2/dw2-dir-file-name.exp (test): Likewise.
* gdb.dwarf2/dw2-noloc.exp (file_symbols): Likewise.
* gdb.mi/mi-breakpoint-changed.exp (test_pending_resolved):
Likewise.
* gdb.mi/mi-cmd-param-changed.exp (test_command_param_changed):
Likewise.
* gdb.mi/mi-watch.exp test_watchpoint_all): Likewise.
* gdb.mi/pr11022.exp (test_memory_changed_observer): Likewise.
* gdb.trace/change-loc.exp (tracepoint_change_loc_1): Likewise.
(tracepoint_change_loc_2): Likewise.
* gdb.trace/disconnected-tracing.exp (disconnected_tracing):
Likewise.
(disconnected_tfind): Likewise.
* gdb.trace/mi-traceframe-changed.exp (test_tfind_tfile):
Likewise.
(test_tfind_remote): Likewise.
* gdb.trace/mi-tracepoint-changed.exp (test_reconnect):
Likewise.
(test_pending_resolved): Likewise.
* gdb.trace/mi-tsv-changed.exp (test_create_delete_modify_tsv):
Likewise.
(test_upload_tsv): Likewise.
* gdb.trace/pending.exp (pending_tracepoint_resolved):
Likewise.
(pending_tracepoint_works): Likewise.
* gdb.trace/report.exp (use_collected_data): Likewise.
* gdb.trace/status-stop.exp (test_tstart_tstop_tstart):
Likewise.
(test_tstart_tstart, test_buffer_full_tstart): Likewise.
* gdb.trace/strace.exp (strace_info_marker): Likewise.
(strace_trace_on_same_addr): Likewise.
(strace_trace_on_diff_addr): Likewise.
* gdb.trace/unavailable.exp (gdb_collect_args_test): Likewise.
(gdb_collect_locals_test): Likewise.
(gdb_unavailable_registers_test): Likewise.
(gdb_collect_globals_test): Likewise.
Diffstat (limited to 'gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp')
-rw-r--r-- | gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp | 325 |
1 files changed, 164 insertions, 161 deletions
diff --git a/gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp b/gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp index c706979..d0a7a1e 100644 --- a/gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp +++ b/gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp @@ -49,192 +49,195 @@ set MIFLAGS "-i=mi" # remote stub can be uploaded to GDB, and GDB emits MI notification if # new tracepoints are created. -proc test_reconnect { } { with_test_prefix "reconnect" { +proc test_reconnect { } { + with_test_prefix "reconnect" { - global gdbserver_reconnect_p - global gdb_prompt - global executable - global lib_sl1 lib_sl2 + global gdbserver_reconnect_p + global gdb_prompt + global executable + global lib_sl1 lib_sl2 - set gdbserver_reconnect_p 1 - if { [info proc gdb_reconnect] == "" } { - return 0 - } + set gdbserver_reconnect_p 1 + if { [info proc gdb_reconnect] == "" } { + return 0 + } - clean_restart $executable - gdb_load_shlibs $lib_sl1 - gdb_load_shlibs $lib_sl2 - if ![runto_main] then { - fail "Can't run to main" - return 0 - } - # Create tracepoints on marker and main, and leave them in the - # remote stub. - gdb_test "trace marker" "Tracepoint.*at.* file .*" \ - "tracepoint on marker" - gdb_test "trace main" "Tracepoint.*at.* file .*" \ - "tracepoint on main" - gdb_test_no_output "tstart" "start trace experiment" - - set test "disconnect" - gdb_test_multiple "disconnect" $test { - -re "Trace is running but will stop on detach; detach anyway\\? \\(y or n\\) $" { - pass $test - - set test "disconnected" - gdb_test_multiple "y" $test { - -re "$gdb_prompt $" { - pass "$test" + clean_restart $executable + gdb_load_shlibs $lib_sl1 + gdb_load_shlibs $lib_sl2 + if ![runto_main] then { + fail "Can't run to main" + return 0 + } + # Create tracepoints on marker and main, and leave them in the + # remote stub. + gdb_test "trace marker" "Tracepoint.*at.* file .*" \ + "tracepoint on marker" + gdb_test "trace main" "Tracepoint.*at.* file .*" \ + "tracepoint on main" + gdb_test_no_output "tstart" "start trace experiment" + + set test "disconnect" + gdb_test_multiple "disconnect" $test { + -re "Trace is running but will stop on detach; detach anyway\\? \\(y or n\\) $" { + pass $test + + set test "disconnected" + gdb_test_multiple "y" $test { + -re "$gdb_prompt $" { + pass "$test" + } } } } - } - - gdb_exit - if [mi_gdb_start] { - return - } + gdb_exit - global srcdir - global subdir - global binfile - - mi_gdb_reinitialize_dir $srcdir/$subdir - mi_gdb_load ${binfile} - - global gdbserver_protocol - global gdbserver_gdbport - - # Create tracepoints on marker and pendfunc2. - mi_gdb_test "-break-insert -a -f pendfunc2" \ - {.*\^done,bkpt=.*addr=\"<PENDING>\".*} \ - "insert tracepoint on pendfunc2" - mi_gdb_test "-break-insert -a marker" {.*\^done,bkpt=.*\".*} \ - "insert tracepoint on marker" - - # Connect to the remote stub again, and make sure GDB merges the - # tracepoints of both sides correctly. - send_gdb "47-target-select $gdbserver_protocol $gdbserver_gdbport\n" - - global mi_gdb_prompt - set test "tracepoint created" - gdb_expect { - -re "=breakpoint-created,bkpt=\{number=\"1\",type=\"tracepoint\"" { - # Tracepoint 1 in GDB, which has already existed before - # connecting, should have been merged with a tracepoint on - # the target, so we shouldn't see a =breakpoint-created - # notification for it. - fail "$test: 1" - exp_continue - } - -re "=breakpoint-created,bkpt=\{number=\"2\",type=\"tracepoint\"" { - # Similar to above. - fail "$test: 2" - exp_continue + if [mi_gdb_start] { + return } - -re "=breakpoint-created,bkpt=\{number=\"3\",type=\"tracepoint\",disp=\"keep\",enabled=\"y\",\[^\n\]+,func=\"main\"\[^\n\]+,installed=\"y\"" { - # A tracepoint on main was defined in the stub, not in GDB, - # so we should see a =breakpoint-created notification. - pass $test + + global srcdir + global subdir + global binfile + + mi_gdb_reinitialize_dir $srcdir/$subdir + mi_gdb_load ${binfile} + + global gdbserver_protocol + global gdbserver_gdbport + + # Create tracepoints on marker and pendfunc2. + mi_gdb_test "-break-insert -a -f pendfunc2" \ + {.*\^done,bkpt=.*addr=\"<PENDING>\".*} \ + "insert tracepoint on pendfunc2" + mi_gdb_test "-break-insert -a marker" {.*\^done,bkpt=.*\".*} \ + "insert tracepoint on marker" + + # Connect to the remote stub again, and make sure GDB merges the + # tracepoints of both sides correctly. + send_gdb "47-target-select $gdbserver_protocol $gdbserver_gdbport\n" + + global mi_gdb_prompt + set test "tracepoint created" + gdb_expect { + -re "=breakpoint-created,bkpt=\{number=\"1\",type=\"tracepoint\"" { + # Tracepoint 1 in GDB, which has already existed before + # connecting, should have been merged with a tracepoint on + # the target, so we shouldn't see a =breakpoint-created + # notification for it. + fail "$test: 1" + exp_continue + } + -re "=breakpoint-created,bkpt=\{number=\"2\",type=\"tracepoint\"" { + # Similar to above. + fail "$test: 2" + exp_continue + } + -re "=breakpoint-created,bkpt=\{number=\"3\",type=\"tracepoint\",disp=\"keep\",enabled=\"y\",\[^\n\]+,func=\"main\"\[^\n\]+,installed=\"y\"" { + # A tracepoint on main was defined in the stub, not in GDB, + # so we should see a =breakpoint-created notification. + pass $test + } } - } - # Tracepoint on marker is defined. After the sync, we know that - # the tracepoint is in remote stub. Mark it 'installed'. - set test "tracepoint on marker is installed" - gdb_expect { - -re "=breakpoint-modified,bkpt=\{number=\"2\".*,func=\"marker\".*installed=\"y\".*${mi_gdb_prompt}$" { - pass "$test" + # Tracepoint on marker is defined. After the sync, we know that + # the tracepoint is in remote stub. Mark it 'installed'. + set test "tracepoint on marker is installed" + gdb_expect { + -re "=breakpoint-modified,bkpt=\{number=\"2\".*,func=\"marker\".*installed=\"y\".*${mi_gdb_prompt}$" { + pass "$test" + } } - } - # Check that tracepoint 1 is still pending. - mi_gdb_test "-break-info 1" \ - {.*\^done,BreakpointTable=.*addr=\"<PENDING>\".*} \ - "break-info 1" - - set gdbserver_reconnect_p 0 -}} + # Check that tracepoint 1 is still pending. + mi_gdb_test "-break-info 1" \ + {.*\^done,BreakpointTable=.*addr=\"<PENDING>\".*} \ + "break-info 1" + set gdbserver_reconnect_p 0 + } +} # Test 'breakpoint-modified' notification is emited when pending tracepoints are # resolved. -proc test_pending_resolved { } { with_test_prefix "pending resolved" { - global decimal hex - global executable - global srcdir - global subdir - global binfile - global lib_sl1 lib_sl2 - global mi_gdb_prompt - - gdb_exit - if [mi_gdb_start] { - continue - } +proc test_pending_resolved { } { + with_test_prefix "pending resolved" { + global decimal hex + global executable + global srcdir + global subdir + global binfile + global lib_sl1 lib_sl2 + global mi_gdb_prompt + + gdb_exit + if [mi_gdb_start] { + continue + } - mi_gdb_reinitialize_dir $srcdir/$subdir - mi_gdb_load ${binfile} - mi_load_shlibs $lib_sl1 $lib_sl2 - - # Create a pending tracepoint on pendfunc2 - mi_gdb_test "-break-insert -a -f pendfunc2" \ - {.*\^done,bkpt=.*addr=\"<PENDING>\".*} \ - "insert breakpoint on pendfunc2" - # Insert breakpoint on marker - mi_gdb_test "-break-insert marker" {.*\^done,bkpt=.*} \ - "insert breakpoint on marker" - - mi_run_cmd - mi_expect_stop "breakpoint-hit" "marker" ""\ - ".*" ".*" {"" "disp=\"keep\""} \ - "continue to marker breakpoint" - mi_gdb_test "-trace-start" {\^done} "trace start" - - mi_send_resuming_command "exec-continue" "continuing execution to marker 1" - - # It is expected to get two "=breakpoint-modified" notifications. - # Pending tracepoint is resolved. - set test "tracepoint on pendfunc2 resolved" - gdb_expect { - -re "=breakpoint-modified,bkpt=\{number=\"1\",type=\"tracepoint\".*.*times=\"0\".*installed=\"n\"" { - pass "$test" + mi_gdb_reinitialize_dir $srcdir/$subdir + mi_gdb_load ${binfile} + mi_load_shlibs $lib_sl1 $lib_sl2 + + # Create a pending tracepoint on pendfunc2 + mi_gdb_test "-break-insert -a -f pendfunc2" \ + {.*\^done,bkpt=.*addr=\"<PENDING>\".*} \ + "insert breakpoint on pendfunc2" + # Insert breakpoint on marker + mi_gdb_test "-break-insert marker" {.*\^done,bkpt=.*} \ + "insert breakpoint on marker" + + mi_run_cmd + mi_expect_stop "breakpoint-hit" "marker" ""\ + ".*" ".*" {"" "disp=\"keep\""} \ + "continue to marker breakpoint" + mi_gdb_test "-trace-start" {\^done} "trace start" + + mi_send_resuming_command "exec-continue" "continuing execution to marker 1" + + # It is expected to get two "=breakpoint-modified" notifications. + # Pending tracepoint is resolved. + set test "tracepoint on pendfunc2 resolved" + gdb_expect { + -re "=breakpoint-modified,bkpt=\{number=\"1\",type=\"tracepoint\".*.*times=\"0\".*installed=\"n\"" { + pass "$test" + } } - } - # Resolved tracepoint is installed. - set test "tracepoint on pendfunc2 installed" - gdb_expect { - -re "=breakpoint-modified,bkpt=\{number=\"1\",type=\"tracepoint\".*.*times=\"0\".*installed=\"y\"" { - pass "$test" + # Resolved tracepoint is installed. + set test "tracepoint on pendfunc2 installed" + gdb_expect { + -re "=breakpoint-modified,bkpt=\{number=\"1\",type=\"tracepoint\".*.*times=\"0\".*installed=\"y\"" { + pass "$test" + } } - } - mi_expect_stop "breakpoint-hit" "marker" ".*" ".*" ".*" \ - {"" "disp=\"keep\""} "continue to marker" + mi_expect_stop "breakpoint-hit" "marker" ".*" ".*" ".*" \ + {"" "disp=\"keep\""} "continue to marker" - mi_gdb_test "-trace-stop" {\^done,.*} "trace stop" - mi_gdb_test "-trace-find frame-number 0" \ - "-trace-find frame-number 0\r\n\\^done,found=\"1\",tracepoint=\"${decimal}\",traceframe=\"0\",frame=\{.*" \ - "-trace-find frame-number 0" - mi_gdb_test "-trace-find none" {\^done,found="0"} "back to live inferior" + mi_gdb_test "-trace-stop" {\^done,.*} "trace stop" + mi_gdb_test "-trace-find frame-number 0" \ + "-trace-find frame-number 0\r\n\\^done,found=\"1\",tracepoint=\"${decimal}\",traceframe=\"0\",frame=\{.*" \ + "-trace-find frame-number 0" + mi_gdb_test "-trace-find none" {\^done,found="0"} "back to live inferior" - mi_send_resuming_command "exec-continue" "continuing to exit" - set test "tracepoint on pendfunc2 becomes pending again" - gdb_expect { - -re ".*=breakpoint-modified,bkpt=\{number=\"1\",type=\"tracepoint\".*addr=\"<PENDING>\",.*times=\"0\"" { - pass "$test" - } - -re ".*${mi_gdb_prompt}$" { - fail $test - } - timeout { - fail "$test (timeout)" + mi_send_resuming_command "exec-continue" "continuing to exit" + set test "tracepoint on pendfunc2 becomes pending again" + gdb_expect { + -re ".*=breakpoint-modified,bkpt=\{number=\"1\",type=\"tracepoint\".*addr=\"<PENDING>\",.*times=\"0\"" { + pass "$test" + } + -re ".*${mi_gdb_prompt}$" { + fail $test + } + timeout { + fail "$test (timeout)" + } } - } - mi_expect_stop "exited-normally" "" "" "" "" "" "" -}} + mi_expect_stop "exited-normally" "" "" "" "" "" "" + } +} # Test target supports tracepoints or not. |