diff options
author | Tom Tromey <tromey@redhat.com> | 2011-11-22 21:25:17 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2011-11-22 21:25:17 +0000 |
commit | 0b9db8ae33ef1f81a3991cf57a260087fed49586 (patch) | |
tree | 99964fc981af37ffaf84e7b9b5b85ecb30dd84ec /gdb/testsuite/lib | |
parent | e2cc3987af1145e3faf03a06cecf21c86e04bcba (diff) | |
download | gdb-0b9db8ae33ef1f81a3991cf57a260087fed49586.tar.gz |
gdb
PR mi/8444:
* mi/mi-common.h (EXEC_ASYNC_SOLIB_EVENT, EXEC_ASYNC_FORK)
(EXEC_ASYNC_VFORK, EXEC_ASYNC_SYSCALL_ENTRY)
(EXEC_ASYNC_SYSCALL_RETURN, EXEC_ASYNC_EXEC): New constants.
* mi/mi-common.c (async_reason_string_lookup): Add new reasons.
* breakpoint.c (print_it_catch_fork, print_it_catch_vfork)
(print_it_catch_syscall, print_it_catch_exec)
(internal_bkpt_print_it): Use ui_out. Emit stop reason.
(bpstat_print): Add 'kind' argument. Handle
TARGET_WAITKIND_LOADED.
* infrun.c (normal_stop): Update for bpstat_print change. Don't
handle TARGET_WAITKIND_LOADED here.
* breakpoint.h (bpstat_print): Update.
gdb/testsuite
* lib/mi-support.exp (mi_run_cmd_full): Rename from mi_run_cmd.
Add "use_mi_command" argument.
(mi_run_cmd, mi_run_with_cli): New procs.
* gdb.mi/solib-lib.c: New file.
* gdb.mi/solib-main.c: New file.
* gdb.mi/mi-solib.exp: New file.
gdb/doc
* gdb.texinfo (GDB/MI Async Records): Document new *stopped
reasons.
Diffstat (limited to 'gdb/testsuite/lib')
-rw-r--r-- | gdb/testsuite/lib/mi-support.exp | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp index 63097cb80ca..dc1717bfc88 100644 --- a/gdb/testsuite/lib/mi-support.exp +++ b/gdb/testsuite/lib/mi-support.exp @@ -788,7 +788,7 @@ proc mi_gdb_test { args } { # In patterns, the newline sequence ``\r\n'' is matched explicitly as # ``.*$'' could swallow up output that we attempt to match elsewhere. -proc mi_run_cmd {args} { +proc mi_run_cmd_full {use_mi_command args} { global suppress_flag if { $suppress_flag } { return -1 @@ -797,6 +797,14 @@ proc mi_run_cmd {args} { global thread_selected_re global library_loaded_re + if {$use_mi_command} { + set run_prefix "220-exec-" + set run_match "220" + } else { + set run_prefix "" + set run_match "" + } + if [target_info exists gdb_init_command] { send_gdb "[target_info gdb_init_command]\n"; gdb_expect 30 { @@ -814,9 +822,9 @@ proc mi_run_cmd {args} { if [target_info exists use_gdb_stub] { if [target_info exists gdb,do_reload_on_run] { - send_gdb "220-exec-continue\n"; + send_gdb "${run_prefix}continue\n"; gdb_expect 60 { - -re "220\\^running\[\r\n\]+\\*running,thread-id=\"\[^\"\]+\"\r\n$mi_gdb_prompt" {} + -re "${run_match}\\^running\[\r\n\]+\\*running,thread-id=\"\[^\"\]+\"\r\n$mi_gdb_prompt" {} default {} } return 0; @@ -835,9 +843,9 @@ proc mi_run_cmd {args} { return 0 } - send_gdb "220-exec-run $args\n" + send_gdb "${run_prefix}run $args\n" gdb_expect { - -re "220\\^running\r\n(\\*running,thread-id=\"\[^\"\]+\"\r\n|=thread-created,id=\"1\",group-id=\"\[0-9\]+\"\r\n)*(${library_loaded_re})*(${thread_selected_re})?${mi_gdb_prompt}" { + -re "${run_match}\\^running\r\n(\\*running,thread-id=\"\[^\"\]+\"\r\n|=thread-created,id=\"1\",group-id=\"\[0-9\]+\"\r\n)*(${library_loaded_re})*(${thread_selected_re})?${mi_gdb_prompt}" { } -re "\\^error,msg=\"The target does not support running in non-stop mode.\"" { unsupported "Non-stop mode not supported" @@ -853,6 +861,20 @@ proc mi_run_cmd {args} { return 0 } +# A wrapper for mi_run_cmd_full which uses -exec-run and +# -exec-continue, as appropriate. ARGS are passed verbatim to +# mi_run_cmd_full. +proc mi_run_cmd {args} { + return [eval mi_run_cmd_full 1 $args] +} + +# A wrapper for mi_run_cmd_full which uses the CLI commands 'run' and +# 'continue', as appropriate. ARGS are passed verbatim to +# mi_run_cmd_full. +proc mi_run_with_cli {args} { + return [eval mi_run_cmd_full 0 $args] +} + # # Just like run-to-main but works with the MI interface # |