mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-26 03:24:41 +08:00
gdb/testsuite/
* gdb.trace/mi-tracepoint-changed.exp: New. * gdb.mi/mi-breakpoint-changed.exp: New. * gdb.mi/pending.c, gdb.mi/pendshr1.c: New * gdb.mi/pendshr2.c: New.
This commit is contained in:
parent
2d8066705f
commit
45814d4572
@ -1,3 +1,10 @@
|
||||
2012-09-29 Yao Qi <yao@codesourcery.com>
|
||||
|
||||
* gdb.trace/mi-tracepoint-changed.exp: New.
|
||||
* gdb.mi/mi-breakpoint-changed.exp: New.
|
||||
* gdb.mi/pending.c, gdb.mi/pendshr1.c: New
|
||||
* gdb.mi/pendshr2.c: New.
|
||||
|
||||
2012-09-28 Yao Qi <yao@codesourcery.com>
|
||||
|
||||
* gdb.mi/pr11022.exp: New.
|
||||
|
236
gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp
Normal file
236
gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp
Normal file
@ -0,0 +1,236 @@
|
||||
# Copyright 2012 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
if {[skip_shlib_tests]} {
|
||||
return 0
|
||||
}
|
||||
|
||||
load_lib mi-support.exp
|
||||
|
||||
standard_testfile pending.c
|
||||
set libfile1 "pendshr1"
|
||||
set libfile2 "pendshr2"
|
||||
set executable $testfile
|
||||
set libsrc1 $srcdir/$subdir/$libfile1.c
|
||||
set libsrc2 $srcdir/$subdir/$libfile2.c
|
||||
set lib_sl1 [standard_output_file pendshr1.sl]
|
||||
set lib_sl2 [standard_output_file pendshr2.sl]
|
||||
set lib_opts "debug"
|
||||
|
||||
if { [gdb_compile_shlib $libsrc1 $lib_sl1 $lib_opts] != ""
|
||||
|| [gdb_compile_shlib $libsrc2 $lib_sl2 $lib_opts] != ""} {
|
||||
untested "Could not compile either $libsrc1 or $libsrc2"
|
||||
return -1
|
||||
}
|
||||
|
||||
set MIFLAGS "-i=mi"
|
||||
|
||||
set exec_opts [list debug shlib=$lib_sl1 shlib_load]
|
||||
if { [gdb_compile $srcdir/$subdir/$srcfile $binfile executable $exec_opts] != "" } {
|
||||
untested "Failed to compile $srcfile"
|
||||
return -1
|
||||
}
|
||||
|
||||
proc test_insert_delete_modify { } {
|
||||
global mi_gdb_prompt
|
||||
|
||||
gdb_exit
|
||||
if [mi_gdb_start] {
|
||||
continue
|
||||
}
|
||||
|
||||
mi_run_to_main
|
||||
|
||||
mi_gdb_test "break marker" \
|
||||
{(&.*)*.*~"Breakpoint 2 at.*\\n".*=breakpoint-created,bkpt=\{number="2",type="breakpoint".*\}.*\n\^done}
|
||||
|
||||
# Verify that '=breakpoint-modified' notification is correctly emitted:
|
||||
|
||||
# 1. when modifying command
|
||||
send_gdb "commands\n"
|
||||
gdb_expect {
|
||||
-re "End with" {
|
||||
}
|
||||
}
|
||||
|
||||
send_gdb "silent\nend\n"
|
||||
set test "change command"
|
||||
gdb_expect {
|
||||
-re ".*=breakpoint-modified.*${mi_gdb_prompt}$" {
|
||||
pass $test
|
||||
}
|
||||
-re ".*${mi_gdb_prompt}$" {
|
||||
fail $test
|
||||
}
|
||||
timeout {
|
||||
fail "$test (timeout)"
|
||||
}
|
||||
}
|
||||
|
||||
# Verify that '=breakpoint-created' notification is correctly emittd when
|
||||
# creating any type of breakpoint.
|
||||
|
||||
set test "watch watch"
|
||||
mi_gdb_test ${test} \
|
||||
{(&.*)*.*~".*atchpoint 3: .*\\n".*=breakpoint-created,bkpt=\{number="3",type="(hw |)watchpoint".*\}.*\n\^done} \
|
||||
$test
|
||||
set test "trace marker"
|
||||
mi_gdb_test $test \
|
||||
{(&.*)*.*~"Tracepoint 4 at .*\\n".*=breakpoint-created,bkpt=\{number="4",type="tracepoint".*\}.*\n\^done} \
|
||||
$test
|
||||
set test "catch syscall"
|
||||
mi_gdb_test $test \
|
||||
{(&.*)*.*~"Catchpoint 5 .*\\n".*=breakpoint-created,bkpt=\{number="5",type="catchpoint".*\}.*\n\^done} \
|
||||
$test
|
||||
set test "dprintf marker, \"arg\" \""
|
||||
mi_gdb_test $test \
|
||||
{.*=breakpoint-created,bkpt=\{number="6",type="dprintf".*\}.*\n\^done} \
|
||||
$test
|
||||
|
||||
# 2. when modifying condition
|
||||
set test "condition 2 main > 0x0"
|
||||
mi_gdb_test $test \
|
||||
{.*=breakpoint-modified,bkpt=\{number="2",.*,cond=\"main > 0x0\".*\}.*\n\^done} \
|
||||
$test
|
||||
|
||||
# 3. when modifying enableness
|
||||
set test "disable 3"
|
||||
mi_gdb_test $test \
|
||||
{.*=breakpoint-modified,bkpt=\{number="3",.*,enabled=\"n\".*\}.*\n\^done} \
|
||||
$test
|
||||
set test "enable 3"
|
||||
mi_gdb_test $test \
|
||||
{.*=breakpoint-modified,bkpt=\{number="3",.*,enabled=\"y\".*\}.*\n\^done} \
|
||||
$test
|
||||
# 4. when modifying ignore count.
|
||||
set test "ignore 5 1"
|
||||
mi_gdb_test $test \
|
||||
{.*=breakpoint-modified,bkpt=\{number="5",.*,ignore=\"1\".*\}.*\n\^done} \
|
||||
$test
|
||||
# 5. when modifying pass count.
|
||||
setup_kfail gdb/14617 *-*-*
|
||||
set test "passcount 1 4"
|
||||
mi_gdb_test $test \
|
||||
{.*=breakpoint-modified,bkpt=\{number="4",.*\}.*\n\^done} \
|
||||
$test
|
||||
|
||||
# Delete some breakpoints and verify that '=breakpoint-deleted
|
||||
# notification is correctly emitted.
|
||||
for {set i 3} {$i < 7} {incr i} {
|
||||
mi_gdb_test "delete ${i}" ".*=breakpoint-deleted,id=\"${i}\".*\\^done" \
|
||||
"delete ${i}"
|
||||
}
|
||||
}
|
||||
|
||||
test_insert_delete_modify
|
||||
|
||||
# Test 'breakpoint-modified' notification is emited when pending breakpoints are
|
||||
# resolved.
|
||||
|
||||
proc test_pending_resolved { } { with_test_prefix "pending resolved" {
|
||||
global decimal hex
|
||||
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 breakpoint on pendfunc1
|
||||
mi_gdb_test "-break-insert -f pendfunc1" \
|
||||
{.*\^done,bkpt=.*addr=\"<PENDING>\".*} \
|
||||
"insert breakpoint on pendfunc1"
|
||||
mi_run_cmd
|
||||
|
||||
set test "breakpoint on pendfunc1 resolved"
|
||||
gdb_expect {
|
||||
-re ".*=breakpoint-modified,bkpt=\{number=\"1\".*addr=\"${hex}\".*,times=\"0\".*" {
|
||||
pass $test
|
||||
exp_continue
|
||||
}
|
||||
-re ".*=breakpoint-modified,bkpt=\{number=\"1\".*addr=\"${hex}\".*,times=\"1\".*" {
|
||||
pass "$test: hit_count is updated"
|
||||
}
|
||||
-re ".*${mi_gdb_prompt}$" {
|
||||
fail $test
|
||||
}
|
||||
timeout {
|
||||
fail "$test (timeout)"
|
||||
}
|
||||
}
|
||||
mi_expect_stop "breakpoint-hit" "pendfunc1" ""\
|
||||
".*" ".*" {"" "disp=\"keep\""} \
|
||||
"continue to pendfunc1 breakpoint"
|
||||
|
||||
# Delete breakpoint on pendfunc1
|
||||
mi_gdb_test "-break-delete 1" {\^done} \
|
||||
"delete breakpoint on pendfunc1"
|
||||
# Insert breakpoint on marker
|
||||
mi_gdb_test "-break-insert marker" {.*\^done,bkpt=.*} \
|
||||
"insert breakpoint on marker"
|
||||
# Create a pending breakpoint on pendfunc3
|
||||
mi_gdb_test "-break-insert -f pendfunc3" \
|
||||
{.*\^done,bkpt=.*addr=\"<PENDING>\".*} \
|
||||
"insert breakpoint on pendfunc3"
|
||||
|
||||
mi_execute_to "exec-continue" "breakpoint-hit" "marker" ".*" ".*" ".*" \
|
||||
{"" "disp=\"keep\""} "continue to marker 1"
|
||||
|
||||
mi_send_resuming_command "exec-continue" "continuing execution to marker"
|
||||
|
||||
set test "breakpoint on pendfunc3 resolved"
|
||||
gdb_expect {
|
||||
-re ".*=breakpoint-modified,bkpt=\{number=\"2\".*addr=\"${hex}\",.*func=\"marker\",.*times=\"1\"" {
|
||||
pass "$test: hit_count is updated"
|
||||
exp_continue
|
||||
}
|
||||
-re ".*=breakpoint-modified,bkpt=\{number=\"3\".*addr=\"${hex}\",.*func=\"pendfunc3\",.*times=\"0\"" {
|
||||
pass $test
|
||||
}
|
||||
-re ".*${mi_gdb_prompt}$" {
|
||||
fail $test
|
||||
}
|
||||
timeout {
|
||||
fail "$test (timeout)"
|
||||
}
|
||||
}
|
||||
mi_expect_stop "breakpoint-hit" "marker" ".*" ".*" ".*" \
|
||||
{"" "disp=\"keep\""} "continue to marker 2"
|
||||
|
||||
mi_send_resuming_command "exec-continue" "continuing to exit"
|
||||
set test "breakpoint on pendfunc3 pending again"
|
||||
gdb_expect {
|
||||
-re ".*=breakpoint-modified,bkpt=\{number=\"3\".*addr=\"<PENDING>\".*" {
|
||||
pass $test
|
||||
}
|
||||
-re ".*${mi_gdb_prompt}$" {
|
||||
fail $test
|
||||
}
|
||||
timeout {
|
||||
fail "$test (timeout)"
|
||||
}
|
||||
}
|
||||
|
||||
mi_expect_stop "exited-normally" "" "" "" "" "" ""
|
||||
}}
|
||||
|
||||
test_pending_resolved
|
51
gdb/testsuite/gdb.mi/pending.c
Normal file
51
gdb/testsuite/gdb.mi/pending.c
Normal file
@ -0,0 +1,51 @@
|
||||
/* This testcase is part of GDB, the GNU debugger.
|
||||
|
||||
Copyright 2011-2012 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <dlfcn.h>
|
||||
|
||||
extern void pendfunc (int x);
|
||||
int watch = 0;
|
||||
|
||||
static void
|
||||
marker () {}
|
||||
|
||||
int main()
|
||||
{
|
||||
const char *libname = "pendshr2.sl";
|
||||
void *h;
|
||||
int (*p_func) (int);
|
||||
|
||||
pendfunc (3);
|
||||
pendfunc (4);
|
||||
pendfunc (3);
|
||||
|
||||
marker ();
|
||||
|
||||
h = dlopen (libname, RTLD_LAZY);
|
||||
if (h == NULL) return 1;
|
||||
|
||||
p_func = dlsym (h, "pendfunc2");
|
||||
if (p_func == NULL) return 2;
|
||||
|
||||
(*p_func) (4);
|
||||
|
||||
marker ();
|
||||
|
||||
dlclose (h);
|
||||
return 0;
|
||||
}
|
29
gdb/testsuite/gdb.mi/pendshr1.c
Normal file
29
gdb/testsuite/gdb.mi/pendshr1.c
Normal file
@ -0,0 +1,29 @@
|
||||
/* This testcase is part of GDB, the GNU debugger.
|
||||
|
||||
Copyright 2011-2012 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
static void
|
||||
pendfunc1 (void)
|
||||
{
|
||||
int x = 0;
|
||||
int y = x + 4;
|
||||
}
|
||||
|
||||
void
|
||||
pendfunc (int x)
|
||||
{
|
||||
pendfunc1 ();
|
||||
}
|
26
gdb/testsuite/gdb.mi/pendshr2.c
Normal file
26
gdb/testsuite/gdb.mi/pendshr2.c
Normal file
@ -0,0 +1,26 @@
|
||||
/* This testcase is part of GDB, the GNU debugger.
|
||||
|
||||
Copyright 2011-2012 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
void
|
||||
pendfunc2 (int x)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
pendfunc3 (int y)
|
||||
{
|
||||
}
|
221
gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp
Normal file
221
gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp
Normal file
@ -0,0 +1,221 @@
|
||||
# Copyright 2012 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
load_lib trace-support.exp
|
||||
|
||||
if {[skip_shlib_tests]} {
|
||||
return 0
|
||||
}
|
||||
|
||||
standard_testfile pending.c
|
||||
set libfile1 "pendshr1"
|
||||
set libfile2 "pendshr2"
|
||||
set executable $testfile
|
||||
set libsrc1 $srcdir/$subdir/$libfile1.c
|
||||
set libsrc2 $srcdir/$subdir/$libfile2.c
|
||||
set lib_sl1 [standard_output_file pendshr1.sl]
|
||||
set lib_sl2 [standard_output_file pendshr2.sl]
|
||||
|
||||
set lib_opts [gdb_target_symbol_prefix_flags]
|
||||
|
||||
if { [gdb_compile_shlib $libsrc1 $lib_sl1 $lib_opts] != ""
|
||||
|| [gdb_compile_shlib $libsrc2 $lib_sl2 $lib_opts] != ""} {
|
||||
untested "Could not compile either $libsrc1 or $libsrc2"
|
||||
return -1
|
||||
}
|
||||
|
||||
set exec_opts [list debug shlib=$lib_sl1 shlib_load]
|
||||
if { [gdb_compile $srcdir/$subdir/$srcfile $binfile executable $exec_opts] != "" } {
|
||||
untested "Failed to compile $srcfile"
|
||||
return -1
|
||||
}
|
||||
|
||||
load_lib mi-support.exp
|
||||
set MIFLAGS "-i=mi"
|
||||
|
||||
# Test when GDB connects to a disconnected stub, existing tracepoints in
|
||||
# remote stub can be uploaded to GDB, and GDB emits MI notification if
|
||||
# new tracepoints are created.
|
||||
|
||||
proc test_reconnect { } { with_test_prefix "reconnect" {
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
gdb_test "trace marker" "Tracepoint.*at.* file .*" \
|
||||
"tracepointpoint on marker"
|
||||
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
|
||||
}
|
||||
|
||||
global srcdir
|
||||
global subdir
|
||||
global binfile
|
||||
|
||||
mi_gdb_reinitialize_dir $srcdir/$subdir
|
||||
mi_gdb_load ${binfile}
|
||||
|
||||
global gdbserver_protocol
|
||||
global gdbserver_gdbport
|
||||
|
||||
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\",disp=\"keep\",enabled=\"y\",.*,func=\"marker\".*${mi_gdb_prompt}" {
|
||||
pass $test
|
||||
}
|
||||
timeout {
|
||||
fail $test
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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"
|
||||
|
||||
set test "tracepoint on pendfunc2 resolved"
|
||||
gdb_expect {
|
||||
-re ".*=breakpoint-modified,bkpt=\{number=\"1\",type=\"tracepoint\".*.*times=\"0\"" {
|
||||
pass "$test"
|
||||
}
|
||||
-re ".*${mi_gdb_prompt}$" {
|
||||
fail $test
|
||||
}
|
||||
timeout {
|
||||
fail "$test (timeout)"
|
||||
}
|
||||
}
|
||||
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_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" "" "" "" "" "" ""
|
||||
}}
|
||||
|
||||
# Test target supports tracepoints or not.
|
||||
|
||||
clean_restart $executable
|
||||
|
||||
gdb_load_shlibs $lib_sl1
|
||||
gdb_load_shlibs $lib_sl2
|
||||
|
||||
if ![runto_main] {
|
||||
fail "Can't run to main to check for trace support"
|
||||
return -1
|
||||
}
|
||||
|
||||
if ![gdb_target_supports_trace] {
|
||||
unsupported "Current target does not support trace"
|
||||
return -1;
|
||||
}
|
||||
|
||||
gdb_exit
|
||||
|
||||
test_reconnect
|
||||
|
||||
test_pending_resolved
|
||||
|
||||
return 0
|
Loading…
Reference in New Issue
Block a user