mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-30 21:44:19 +08:00
gdb/
2012-02-15 Pedro Alves <palves@redhat.com> * remote.c (remote_detach_1, extended_remote_attach_1): Tweak output to be like native targets'. (remote_pid_to_str): Special case the null ptid. gdb/testsuite/ 2012-02-15 Pedro Alves <palves@redhat.com> Support extended-remote. Avoid cascading timeouts. * gdb.base/attach.exp (do_attach_tests): Add expected output for the extended-remote target. If attaching with no file fails, load the file manually. * gdb.server/ext-attach.exp: Adjust expected attach/detach output.
This commit is contained in:
parent
f9fa4a6341
commit
7cee1e5405
@ -1,3 +1,9 @@
|
||||
2012-02-15 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* remote.c (remote_detach_1, extended_remote_attach_1): Tweak
|
||||
output to be like native targets'.
|
||||
(remote_pid_to_str): Special case the null ptid.
|
||||
|
||||
2012-02-14 Stan Shebs <stan@codesourcery.com>
|
||||
|
||||
* NEWS: Mention enable count command.
|
||||
|
47
gdb/remote.c
47
gdb/remote.c
@ -4205,6 +4205,16 @@ remote_detach_1 (char *args, int from_tty, int extended)
|
||||
if (!target_has_execution)
|
||||
error (_("No process to detach from."));
|
||||
|
||||
if (from_tty)
|
||||
{
|
||||
char *exec_file = get_exec_file (0);
|
||||
if (exec_file == NULL)
|
||||
exec_file = "";
|
||||
printf_unfiltered (_("Detaching from program: %s, %s\n"), exec_file,
|
||||
target_pid_to_str (pid_to_ptid (pid)));
|
||||
gdb_flush (gdb_stdout);
|
||||
}
|
||||
|
||||
/* Tell the remote target to detach. */
|
||||
if (remote_multi_process_p (rs))
|
||||
sprintf (rs->buf, "D;%x", pid);
|
||||
@ -4221,19 +4231,8 @@ remote_detach_1 (char *args, int from_tty, int extended)
|
||||
else
|
||||
error (_("Can't detach process."));
|
||||
|
||||
if (from_tty)
|
||||
{
|
||||
if (remote_multi_process_p (rs))
|
||||
printf_filtered (_("Detached from remote %s.\n"),
|
||||
target_pid_to_str (pid_to_ptid (pid)));
|
||||
else
|
||||
{
|
||||
if (extended)
|
||||
puts_filtered (_("Detached from remote process.\n"));
|
||||
else
|
||||
puts_filtered (_("Ending remote debugging.\n"));
|
||||
}
|
||||
}
|
||||
if (from_tty && !extended)
|
||||
puts_filtered (_("Ending remote debugging.\n"));
|
||||
|
||||
discard_pending_stop_replies (pid);
|
||||
target_mourn_inferior ();
|
||||
@ -4286,6 +4285,20 @@ extended_remote_attach_1 (struct target_ops *target, char *args, int from_tty)
|
||||
if (remote_protocol_packets[PACKET_vAttach].support == PACKET_DISABLE)
|
||||
error (_("This target does not support attaching to a process"));
|
||||
|
||||
if (from_tty)
|
||||
{
|
||||
char *exec_file = get_exec_file (0);
|
||||
|
||||
if (exec_file)
|
||||
printf_unfiltered (_("Attaching to program: %s, %s\n"), exec_file,
|
||||
target_pid_to_str (pid_to_ptid (pid)));
|
||||
else
|
||||
printf_unfiltered (_("Attaching to %s\n"),
|
||||
target_pid_to_str (pid_to_ptid (pid)));
|
||||
|
||||
gdb_flush (gdb_stdout);
|
||||
}
|
||||
|
||||
sprintf (rs->buf, "vAttach;%x", pid);
|
||||
putpkt (rs->buf);
|
||||
getpkt (&rs->buf, &rs->buf_size, 0);
|
||||
@ -4293,10 +4306,6 @@ extended_remote_attach_1 (struct target_ops *target, char *args, int from_tty)
|
||||
if (packet_ok (rs->buf,
|
||||
&remote_protocol_packets[PACKET_vAttach]) == PACKET_OK)
|
||||
{
|
||||
if (from_tty)
|
||||
printf_unfiltered (_("Attached to %s\n"),
|
||||
target_pid_to_str (pid_to_ptid (pid)));
|
||||
|
||||
if (!non_stop)
|
||||
{
|
||||
/* Save the reply for later. */
|
||||
@ -8823,7 +8832,9 @@ remote_pid_to_str (struct target_ops *ops, ptid_t ptid)
|
||||
static char buf[64];
|
||||
struct remote_state *rs = get_remote_state ();
|
||||
|
||||
if (ptid_is_pid (ptid))
|
||||
if (ptid_equal (ptid, null_ptid))
|
||||
return normal_pid_to_str (ptid);
|
||||
else if (ptid_is_pid (ptid))
|
||||
{
|
||||
/* Printing an inferior target id. */
|
||||
|
||||
|
@ -1,3 +1,12 @@
|
||||
2012-02-15 Pedro Alves <palves@redhat.com>
|
||||
|
||||
Support extended-remote. Avoid cascading timeouts.
|
||||
|
||||
* gdb.base/attach.exp (do_attach_tests): Add expected output for
|
||||
the extended-remote target. If attaching with no file fails, load
|
||||
the file manually.
|
||||
* gdb.server/ext-attach.exp: Adjust expected attach/detach output.
|
||||
|
||||
2012-02-14 Stan Shebs <stan@codesourcery.com>
|
||||
|
||||
* gdb.base/ena-dis-br.exp: Add enable count test.
|
||||
|
@ -160,6 +160,10 @@ proc do_attach_tests {} {
|
||||
# Response expected on Cygwin
|
||||
pass "$test"
|
||||
}
|
||||
-re "Attaching to.*, process $boguspid.*failed.*$gdb_prompt $" {
|
||||
# Response expected on the extended-remote target.
|
||||
pass "$test"
|
||||
}
|
||||
}
|
||||
|
||||
# Verify that we can attach to the process by first giving its
|
||||
@ -224,7 +228,8 @@ proc do_attach_tests {} {
|
||||
# Verify that we can attach to the process just by giving the
|
||||
# process ID.
|
||||
|
||||
set test "set file, before attach2"
|
||||
set test "attach2, with no file"
|
||||
set found_exec_file 0
|
||||
gdb_test_multiple "attach $testpid" "$test" {
|
||||
-re "Attaching to process $testpid.*Load new symbol table from \"$escapedbinfile\.exe\".*y or n. $" {
|
||||
# On Cygwin, the DLL's symbol tables are loaded prior to the
|
||||
@ -233,9 +238,25 @@ proc do_attach_tests {} {
|
||||
# executable.
|
||||
gdb_test "y" "Reading symbols from $escapedbinfile\.\.\.*done." \
|
||||
"$test (reset file)"
|
||||
|
||||
set found_exec_file 1
|
||||
}
|
||||
-re "Attaching to process $testpid.*Reading symbols from $escapedbinfile.*main.*at .*$gdb_prompt $" {
|
||||
pass "$test"
|
||||
set found_exec_file 1
|
||||
}
|
||||
}
|
||||
|
||||
if {$found_exec_file == 0} {
|
||||
set test "load file manually, after attach2"
|
||||
gdb_test_multiple "file $binfile" "$test" {
|
||||
-re "A program is being debugged already..*Are you sure you want to change the file.*y or n. $" {
|
||||
gdb_test "y" "Reading symbols from $escapedbinfile\.\.\.*done." \
|
||||
"$test (re-read)"
|
||||
}
|
||||
-re "Reading symbols from $escapedbinfile\.\.\.*done.*$gdb_prompt $" {
|
||||
pass "$test"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -57,14 +57,16 @@ if { [istarget "*-*-cygwin*"] } {
|
||||
set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
|
||||
}
|
||||
|
||||
gdb_test "attach $testpid" "Attached to.*" \
|
||||
gdb_test "attach $testpid" \
|
||||
"Attaching to program: .*, process $testpid.*(in|at).*" \
|
||||
"attach to remote program 1"
|
||||
gdb_test "backtrace" ".*main.*" "backtrace 1"
|
||||
|
||||
gdb_test "detach" "Detached from remote process.*\\."
|
||||
gdb_test "detach" "Detaching from program.*process.*"
|
||||
gdb_test "backtrace" "No stack\\." "backtrace with no program"
|
||||
|
||||
gdb_test "attach $testpid" "Attached to.*" \
|
||||
gdb_test "attach $testpid" \
|
||||
"Attaching to program: .*, process $testpid.*(in|at).*" \
|
||||
"attach to remote program 2"
|
||||
gdb_test "backtrace" ".*main.*" "backtrace 2"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user