gdb/testsuite/
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.trace / mi-tracepoint-changed.exp
index c70697943e07b2ec1a78b23a725eadeadbf689d4..d0a7a1e70d34ffa300ee205b15ba0ad7a404095e 100644 (file)
@@ -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.
 
This page took 0.02854 seconds and 4 git commands to generate.