public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
@ 2014-08-22 4:11 dilyan.palauzov at aegee dot org
2014-10-05 14:13 ` [Bug cli/17300] " jan.kratochvil at redhat dot com
` (15 more replies)
0 siblings, 16 replies; 17+ messages in thread
From: dilyan.palauzov at aegee dot org @ 2014-08-22 4:11 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
Bug ID: 17300
Summary: crash in non-stop mode with continue -a &
(readline_callback_read_char() called with no
handler!)
Product: gdb
Version: 7.8
Status: NEW
Severity: normal
Priority: P2
Component: cli
Assignee: unassigned at sourceware dot org
Reporter: dilyan.palauzov at aegee dot org
(gdb) show pagination
State of pagination is off.
(gdb) set non-stop on
(gdb) attach NUM &
Attaching to program: ...
Reading symbols from ...
(gdb) interrupt -a &
(gdb) [Thread 0x7fd9786a7700 (LWP 5740)] #2 stopped.
0x00007fd97938c009 in do_sigwait () from /lib64/libpthread.so.0
[Thread 0x7fd97ef97740 (LWP 5738)] #1 stopped.
0x00007fd978997633 in select () from /lib64/libc.so.6
c -a & <-- note, I enter continue -a & even thought the prompt is not here,
in order to avoid possibly repeating interrupt -a &
Continuing.
(gdb) <RET>
Continuing.
<RET>
readline: readline_callback_read_char() called with no handler!
/usr/sbin/gdb: line 1: 5803 Aborted (core dumped)
EDITOR=/usr/bin/emacs /usr/bin/gdb --silent "$@"
And the backtrace:
#0 0x00007fa84fcf1655 in raise () from /lib64/libc.so.6
No symbol table info available.
#1 0x00007fa84fcf2ad8 in abort () from /lib64/libc.so.6
No symbol table info available.
#2 0x00007fa8529603f3 in rl_callback_read_char () from
/usr/lib/libreadline.so.6
No symbol table info available.
#3 0x000000000067ebc9 in rl_callback_read_char_wrapper (client_data=<optimized
out>) at ../../gdb-7.8/gdb/event-top.c:167
No locals.
#4 0x00000000006829c1 in process_event () at
../../gdb-7.8/gdb/event-loop.c:343
event_ptr = <optimized out>
proc = 0x689610 <handle_file_event>
data = {
ptr = 0x0,
integer = 0
}
#5 0x000000000068b287 in gdb_do_one_event () at
../../gdb-7.8/gdb/event-loop.c:407
event_source_head = 0
current = 3
#6 0x000000000068ff1e in start_event_loop () at
../../gdb-7.8/gdb/event-loop.c:432
ex = {
reason = 0,
error = GDB_NO_ERROR,
message = 0x0
}
result = 0
#7 0x00000000006892b3 in captured_command_loop (data=data@entry=0x0) at
../../gdb-7.8/gdb/main.c:302
No locals.
#8 0x00000000006909ca in catch_errors (func=func@entry=0x6892a0
<captured_command_loop>, func_args=func_args@entry=0x0,
errstring=errstring@entry=0x8b9d29 "", mask=mask@entry=RETURN_MASK_ALL) at
../../gdb-7.8/gdb/exceptions.c:506
val = 0
exception = {
reason = 0,
error = GDB_NO_ERROR,
message = 0x0
}
saved_uiout = 0x1f4d580
#9 0x0000000000691726 in captured_main (data=data@entry=0x7fff4e8f9740) at
../../gdb-7.8/gdb/main.c:1155
context = 0x7fff4e8f9740
argc = <optimized out>
argv = <optimized out>
quiet = 1
set_args = 0
inhibit_home_gdbinit = 0
symarg = 0x7fff4e8fb8d2 "/usr/sbin/aegee-milter"
execarg = 0x7fff4e8fb8d2 "/usr/sbin/aegee-milter"
pidarg = 0x0
corearg = 0x0
pid_or_core_arg = 0x0
cdarg = 0x0
ttyarg = 0x0
print_help = 0
print_version = 0
print_configuration = 0
cmdarg_vec = 0x0
cmdarg_p = 0x0
dirarg = 0x1da9f60
dirsize = <optimized out>
ndir = <optimized out>
system_gdbinit = 0x0
home_gdbinit = 0x1f31760 "/root/.gdbinit"
local_gdbinit = 0x0
i = <optimized out>
save_auto_load = <optimized out>
objfile = <optimized out>
pre_stat_chain = 0x8e7a00 <sentinel_cleanup.lto_priv>
#10 0x00000000006909ca in catch_errors (func=func@entry=0x690a40
<captured_main>, func_args=func_args@entry=0x7fff4e8f9740,
errstring=errstring@entry=0x8b9d29 "", mask=mask@entry=RETURN_MASK_ALL) at
../../gdb-7.8/gdb/exceptions.c:506
val = 0
exception = {
reason = 0,
error = GDB_NO_ERROR,
message = 0x0
}
saved_uiout = 0xb9a5c0 <def_uiout>
#11 0x000000000069196b in gdb_main (args=args@entry=0x7fff4e8f9740) at
../../gdb-7.8/gdb/main.c:1163
No locals.
#12 0x0000000000457bb5 in main (argc=<optimized out>, argv=<optimized out>) at
../../gdb-7.8/gdb/gdb.c:33
args = {
argc = 3,
argv = 0x7fff4e8f9848,
interpreter_p = 0x882b99 "console"
}
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug cli/17300] crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
@ 2014-10-05 14:13 ` jan.kratochvil at redhat dot com
2014-10-06 13:10 ` palves at redhat dot com
` (14 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jan.kratochvil at redhat dot com @ 2014-10-05 14:13 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
Jan Kratochvil <jan.kratochvil at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |jan.kratochvil at redhat dot com
Resolution|--- |DUPLICATE
--- Comment #1 from Jan Kratochvil <jan.kratochvil at redhat dot com> ---
Thanks for the bugreport, I got to the same bug some other way.
*** This bug has been marked as a duplicate of bug 17456 ***
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug cli/17300] crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
2014-10-05 14:13 ` [Bug cli/17300] " jan.kratochvil at redhat dot com
@ 2014-10-06 13:10 ` palves at redhat dot com
2014-10-06 13:12 ` palves at redhat dot com
` (13 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: palves at redhat dot com @ 2014-10-06 13:10 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
Pedro Alves <palves at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
CC| |palves at redhat dot com
Resolution|DUPLICATE |---
--- Comment #2 from Pedro Alves <palves at redhat dot com> ---
Not sure this is the same bug as 17456. Previously, different/unrelated bugs
have resulted in that readline assertion triggering.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug cli/17300] crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
2014-10-05 14:13 ` [Bug cli/17300] " jan.kratochvil at redhat dot com
2014-10-06 13:10 ` palves at redhat dot com
@ 2014-10-06 13:12 ` palves at redhat dot com
2014-10-06 13:22 ` palves at redhat dot com
` (12 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: palves at redhat dot com @ 2014-10-06 13:12 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
--- Comment #3 from Pedro Alves <palves at redhat dot com> ---
It seems GDB loses the & in "c -a&" when putting that command in the history (a
bug in itself), and so the second <RET> actually executes "c -a". Here's what
I've reduced the reproducer to so far:
$ gdb -ex "set non-stop on" --args /usr/bin/sleep 10000
(gdb) r
Starting program: /usr/bin/sleep 10000
^C
Program received signal SIGINT, Interrupt.
0x00000033356bc780 in __nanosleep_nocancel () at
../sysdeps/unix/syscall-template.S:81
81 T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
(gdb) c -a&
Continuing.
(gdb) c -a
Continuing.
readline: readline_callback_read_char() called with no handler!
Program received signal SIGABRT, Aborted.
0x0000003335635887 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(top-gdb)
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug cli/17300] crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
` (2 preceding siblings ...)
2014-10-06 13:12 ` palves at redhat dot com
@ 2014-10-06 13:22 ` palves at redhat dot com
2014-10-07 11:32 ` dilyan.palauzov at aegee dot org
` (11 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: palves at redhat dot com @ 2014-10-06 13:22 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
--- Comment #4 from Pedro Alves <palves at redhat dot com> ---
Got it. The problem where is that when "c -a" is run, all threads in the
target are already running, so proceed_thread_callback never really calls
"proceed/resume", and so nothing calls target_terminal_inferior, which we must
do when we run a foreground command, to remove stdin from GDB's event loop.
This one's not a 7.8 regression. I just now tried 7.6 (with set target-async
on, of course), and it likewise aborted.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug cli/17300] crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
` (3 preceding siblings ...)
2014-10-06 13:22 ` palves at redhat dot com
@ 2014-10-07 11:32 ` dilyan.palauzov at aegee dot org
2014-10-07 15:37 ` palves at redhat dot com
` (10 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: dilyan.palauzov at aegee dot org @ 2014-10-07 11:32 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
--- Comment #5 from dilyan.palauzov at aegee dot org <dilyan.palauzov at aegee dot org> ---
Here is something I experience from time to time with GDB 7.8, that might be
related, but I cannot yet write the exact steps how to reproduce it:
In non-stop mode I attach& to a process, then do continue -a &, interrupt -a&
in chaotic way and while GDB doesn't crash, the debugged application crashes.
This might be also related to Bug 16809 (interrupt -a leads to GDB crash in
libreadline). In particular, while before fixing Bug 16809 GDB crashed and the
application continued running, now GDB does not crash and the debugged
application aborts.
Anyway, the commands "interrupt -a&" and "continue -a&" may non repeat by
pressing <RET> in non-stop mode and this has to be written in the
documentation.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug cli/17300] crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
` (4 preceding siblings ...)
2014-10-07 11:32 ` dilyan.palauzov at aegee dot org
@ 2014-10-07 15:37 ` palves at redhat dot com
2014-10-07 15:43 ` palves at redhat dot com
` (9 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: palves at redhat dot com @ 2014-10-07 15:37 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
--- Comment #6 from Pedro Alves <palves at redhat dot com> ---
On 10/07/2014 12:31 PM, dilyan.palauzov at aegee dot org wrote:
>
> Anyway, the commands "interrupt -a&" and "continue -a&" may non repeat by
> pressing <RET> in non-stop mode and this has to be written in the
> documentation.
That's a bug. I have a fix.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug cli/17300] crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
` (5 preceding siblings ...)
2014-10-07 15:37 ` palves at redhat dot com
@ 2014-10-07 15:43 ` palves at redhat dot com
2014-10-09 15:51 ` palves at redhat dot com
` (8 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: palves at redhat dot com @ 2014-10-07 15:43 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
--- Comment #7 from Pedro Alves <palves at redhat dot com> ---
On 10/07/2014 12:31 PM, dilyan.palauzov at aegee dot org wrote:
>
> In non-stop mode I attach& to a process, then do continue -a &, interrupt -a&
> in chaotic way and while GDB doesn't crash, the debugged application crashes.
It might be we're interrupting a displaced stepping operation midway or
some such, and leave the inferior in a messed up state.
Let's have that tracked under a different bug please.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug cli/17300] crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
` (6 preceding siblings ...)
2014-10-07 15:43 ` palves at redhat dot com
@ 2014-10-09 15:51 ` palves at redhat dot com
2014-10-17 12:47 ` cvs-commit at gcc dot gnu.org
` (7 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: palves at redhat dot com @ 2014-10-09 15:51 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
Pedro Alves <palves at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|REOPENED |ASSIGNED
Assignee|unassigned at sourceware dot org |palves at redhat dot com
--- Comment #8 from Pedro Alves <palves at redhat dot com> ---
Mine.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug cli/17300] crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
` (7 preceding siblings ...)
2014-10-09 15:51 ` palves at redhat dot com
@ 2014-10-17 12:47 ` cvs-commit at gcc dot gnu.org
2014-10-17 13:30 ` palves at redhat dot com
` (6 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2014-10-17 12:47 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
--- Comment #9 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".
The branch, master has been updated
via 6c4486e63f7583ed85a0c72841f6ccceebbf858e (commit)
via 0ff33695eeedf3c2e8cdec8690ae4a10a66b3389 (commit)
via 6fdebc3d1c54d2202f7637e7345fe6d25c7ed93b (commit)
via 5842f62aad5c20dbb3511208efbc40a8d638b6d3 (commit)
from 3f7308212cefe5cd958b29e0b9e92d92c4dbe941 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6c4486e63f7583ed85a0c72841f6ccceebbf858e
commit 6c4486e63f7583ed85a0c72841f6ccceebbf858e
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:26 2014 +0100
PR gdb/17471: Repeating a background command makes it foreground
When we repeat a command, by just pressing <ret>, the input from the
previous command is reused for the new command invocation.
When an execution command strips the "&" out of its incoming argument
string, to detect background execution, we poke a '\0' directly to the
incoming argument string.
Combine both, and a repeat of a background command loses the "&".
This is actually only visible if args other than "&" are specified
(e.g., "c 1&" or "next 2&" or "c -a&"), as in the special case of "&"
alone (e.g. "c&") doesn't actually clobber the incoming string.
Fix this by making strip_bg_char return a new string instead of poking
a hole in the input string.
New test included.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17471
* infcmd.c (strip_bg_char): Change prototype and rewrite. Now
returns a copy of the input.
(run_command_1, continue_command, step_1, jump_command)
(signal_command, until_command, advance_command, finish_command)
(attach_command): Adjust and install a cleanup to free the
stripped args.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17471
* gdb.base/bg-execution-repeat.c: New file.
* gdb.base/bg-execution-repeat.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0ff33695eeedf3c2e8cdec8690ae4a10a66b3389
commit 0ff33695eeedf3c2e8cdec8690ae4a10a66b3389
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:25 2014 +0100
PR gdb/17300: Input after "c -a" crashes readline/GDB
If all threads in the target were already running when the user does
"c -a", nothing puts the inferior's terminal settings in effect and
removes stdin from the event loop, which we must when running a
foreground command. The result is that user input afterwards crashes
readline/gdb:
(gdb) start
Temporary breakpoint 1 at 0x4005d4: file continue-all-already-running.c,
line 23.
Starting program: continue-all-already-running
Temporary breakpoint 1, main () at continue-all-already-running.c:23
23 sleep (10);
(gdb) c -a&
Continuing.
(gdb) c -a
Continuing.
p 1
readline: readline_callback_read_char() called with no handler!
Aborted (core dumped)
$
Backtrace:
Program received signal SIGABRT, Aborted.
0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(top-gdb) p 1
$1 = 1
(top-gdb) bt
#0 0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x0000003b36a36f68 in __GI_abort () at abort.c:89
#2 0x0000000000784aa9 in rl_callback_read_char () at
readline/callback.c:116
#3 0x0000000000619181 in rl_callback_read_char_wrapper (client_data=0x0)
at gdb/event-top.c:167
#4 0x0000000000619557 in stdin_event_handler (error=0, client_data=0x0)
at gdb/event-top.c:373
#5 0x000000000061814a in handle_file_event (data=...) at
gdb/event-loop.c:763
#6 0x0000000000617631 in process_event () at gdb/event-loop.c:340
#7 0x00000000006176f8 in gdb_do_one_event () at gdb/event-loop.c:404
#8 0x0000000000617748 in start_event_loop () at gdb/event-loop.c:429
#9 0x00000000006191b3 in cli_command_loop (data=0x0) at
gdb/event-top.c:182
#10 0x000000000060f538 in current_interp_command_loop () at
gdb/interps.c:318
#11 0x0000000000610701 in captured_command_loop (data=0x0) at
gdb/main.c:323
#12 0x000000000060c3f5 in catch_errors (func=0x6106e6
<captured_command_loop>, func_args=0x0, errstring=0x9002c1 "",
mask=RETURN_MASK_ALL)
at gdb/exceptions.c:237
#13 0x0000000000611bff in captured_main (data=0x7fffffffd780) at
gdb/main.c:1151
#14 0x000000000060c3f5 in catch_errors (func=0x610afe <captured_main>,
func_args=0x7fffffffd780, errstring=0x9002c1 "", mask=RETURN_MASK_ALL)
at gdb/exceptions.c:237
#15 0x0000000000611c28 in gdb_main (args=0x7fffffffd780) at
gdb/main.c:1159
#16 0x000000000045ef97 in main (argc=5, argv=0x7fffffffd888) at
gdb/gdb.c:32
(top-gdb)
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17300
* infcmd.c (continue_1): If continuing all threads in the
foreground, make sure the inferior's terminal settings are put in
effect.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17300
* gdb.base/continue-all-already-running.c: New file.
* gdb.base/continue-all-already-running.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6fdebc3d1c54d2202f7637e7345fe6d25c7ed93b
commit 6fdebc3d1c54d2202f7637e7345fe6d25c7ed93b
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:25 2014 +0100
PR gdb/17472: With annotations, input while executing in the foreground
crashes readline/GDB
Jan caught an intermittent GDB crash with the annota1.exp test:
Starting program: .../gdb/testsuite/gdb.base/annota1 ^M
[...]
FAIL: gdb.base/annota1.exp: run until main breakpoint (timeout)
[...]
readline: readline_callback_read_char() called with no handler!^M
ERROR: Process no longer exists
All we need to is to continue the inferior in the foreground, and type
a command while the inferior is running. E.g.:
(gdb) set annotate 2
▒▒pre-prompt
(gdb)
▒▒prompt
c
▒▒post-prompt
Continuing.
▒▒starting
▒▒frames-invalid
*inferior is running now*
p 1<ret>
readline: readline_callback_read_char() called with no handler!
Aborted (core dumped)
$
When we run a foreground execution command we call
target_terminal_inferior to stop GDB from processing input, and to put
the inferior's terminal settings in effect. Then we tell readline to
hide the prompt with display_gdb_prompt, which clears readline's input
callback too. When the target stops, we call target_terminal_ours,
which re-installs stdin in the event loop, and then we redisplay the
prompt, reinstalling the readline callbacks.
However, when annotations are in effect, the "frames-invalid"
annotation code calls target_terminal_ours after 'resume' had already
called target_terminal_inferior:
(top-gdb) bt
#0 0x000000000056b82f in annotate_frames_invalid () at gdb/annotate.c:219
#1 0x000000000072e6cc in reinit_frame_cache () at gdb/frame.c:1705
#2 0x0000000000594bb9 in registers_changed_ptid (ptid=...) at
gdb/regcache.c:612
#3 0x000000000064cca1 in target_resume (ptid=..., step=1,
signal=GDB_SIGNAL_0) at gdb/target.c:2136
#4 0x00000000005f57af in resume (step=1, sig=GDB_SIGNAL_0) at
gdb/infrun.c:2263
#5 0x00000000005f6051 in proceed (addr=18446744073709551615,
siggnal=GDB_SIGNAL_DEFAULT, step=1) at gdb/infrun.c:2613
And then once we hide the prompt and remove readline's input handler
callback, we're in a bad state. We end up with the target running
supposedly in the foreground, but with stdin still installed on the
event loop. Any input then calls into readline, which aborts because
no rl_linefunc callback handler is installed:
Program received signal SIGABRT, Aborted.
0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(top-gdb) bt
#0 0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x0000003b36a36f68 in __GI_abort () at abort.c:89
During symbol reading, debug info gives source 9 included from file at
zero line 0.
During symbol reading, debug info gives command-line macro definition with
non-zero line 19: _STDC_PREDEF_H 1.
#2 0x0000000000784a25 in rl_callback_read_char () at
src/readline/callback.c:116
#3 0x0000000000619111 in rl_callback_read_char_wrapper (client_data=0x0)
at src/gdb/event-top.c:167
#4 0x00000000006194e7 in stdin_event_handler (error=0, client_data=0x0)
at src/gdb/event-top.c:373
#5 0x00000000006180da in handle_file_event (data=...) at
src/gdb/event-loop.c:763
#6 0x00000000006175c1 in process_event () at src/gdb/event-loop.c:340
#7 0x0000000000617688 in gdb_do_one_event () at src/gdb/event-loop.c:404
#8 0x00000000006176d8 in start_event_loop () at src/gdb/event-loop.c:429
#9 0x0000000000619143 in cli_command_loop (data=0x0) at
src/gdb/event-top.c:182
#10 0x000000000060f4c8 in current_interp_command_loop () at
src/gdb/interps.c:318
#11 0x0000000000610691 in captured_command_loop (data=0x0) at
src/gdb/main.c:323
#12 0x000000000060c385 in catch_errors (func=0x610676
<captured_command_loop>, func_args=0x0, errstring=0x900241 "",
mask=RETURN_MASK_ALL)
at src/gdb/exceptions.c:237
#13 0x0000000000611b8f in captured_main (data=0x7fffffffd7b0) at
src/gdb/main.c:1151
#14 0x000000000060c385 in catch_errors (func=0x610a8e <captured_main>,
func_args=0x7fffffffd7b0, errstring=0x900241 "", mask=RETURN_MASK_ALL)
at src/gdb/exceptions.c:237
#15 0x0000000000611bb8 in gdb_main (args=0x7fffffffd7b0) at
src/gdb/main.c:1159
#16 0x000000000045ef57 in main (argc=3, argv=0x7fffffffd8b8) at
src/gdb/gdb.c:32
The fix is to make the annotation code call target_terminal_inferior
again after printing, if the inferior's settings were in effect.
While at it, when we're doing output only, instead of
target_terminal_ours, we should call target_terminal_ours_for_output.
The latter doesn't actually remove stdin from the event loop, and also
leaves SIGINT forwarded to the target.
New test included.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17472
* annotate.c (annotate_breakpoints_invalid): Use
target_terminal_our_for_output instead of target_terminal_ours.
Give back the terminal to the target.
(annotate_frames_invalid): Likewise.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17472
* gdb.base/annota-input-while-running.c: New file.
* gdb.base/annota-input-while-running.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5842f62aad5c20dbb3511208efbc40a8d638b6d3
commit 5842f62aad5c20dbb3511208efbc40a8d638b6d3
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:25 2014 +0100
Make common code handle target_terminal_* idempotency
I found a place that should be giving back the terminal to the target,
but only if the target was already owning it. So I need to add a
getter for who owns the terminal.
The trouble is that several places/target have their own globals to
track this state:
- inflow.c:terminal_is_ours
- remote.c:remote_async_terminal_ours_p
- linux-nat.c:async_terminal_is_ours
- go32-nat.c:terminal_is_ours
While one might think of adding a new target_ops method to query this,
conceptually, this state isn't really part of a particular target_ops.
Considering multi-target, the core shouldn't have to ask all targets
to know whether it's GDB that owns the terminal. There's only one GDB
(or rather, only one top level interpreter).
So what this comment does is add a new global that is tracked by the
core instead. A subsequent pass may later remove the other globals.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
* target.c (enum terminal_state): New enum.
(terminal_state): New global.
(target_terminal_init): New function.
(target_terminal_inferior): Skip if inferior already owns the
terminal.
(target_terminal_ours, target_terminal_ours_for_output): New
functions.
* target.h (target_terminal_init): Convert to function prototype.
(target_terminal_ours_for_output): Convert to function prototype
and tweak comment.
(target_terminal_ours): Convert to function prototype and tweak
comment.
* windows-nat.c (do_initial_windows_stuff): Call
target_terminal_init instead of child_terminal_init_with_pgrp.
-----------------------------------------------------------------------
Summary of changes:
gdb/ChangeLog | 42 +++++
gdb/annotate.c | 22 +++-
gdb/infcmd.c | 160 +++++++++++++-------
gdb/target.c | 64 ++++++++
gdb/target.h | 25 ++--
gdb/testsuite/ChangeLog | 18 +++
.../gdb.base/annota-input-while-running.c | 25 +++
.../gdb.base/annota-input-while-running.exp | 130 ++++++++++++++++
gdb/testsuite/gdb.base/bg-execution-repeat.c | 33 ++++
gdb/testsuite/gdb.base/bg-execution-repeat.exp | 86 +++++++++++
.../gdb.base/continue-all-already-running.c | 25 +++
.../gdb.base/continue-all-already-running.exp | 79 ++++++++++
gdb/windows-nat.c | 2 +-
13 files changed, 642 insertions(+), 69 deletions(-)
create mode 100644 gdb/testsuite/gdb.base/annota-input-while-running.c
create mode 100644 gdb/testsuite/gdb.base/annota-input-while-running.exp
create mode 100644 gdb/testsuite/gdb.base/bg-execution-repeat.c
create mode 100644 gdb/testsuite/gdb.base/bg-execution-repeat.exp
create mode 100644 gdb/testsuite/gdb.base/continue-all-already-running.c
create mode 100644 gdb/testsuite/gdb.base/continue-all-already-running.exp
--
You are receiving this mail because:
You are on the CC list for the bug.
>From gdb-prs-return-16840-listarch-gdb-prs=sources.redhat.com@sourceware.org Fri Oct 17 12:47:50 2014
Return-Path: <gdb-prs-return-16840-listarch-gdb-prs=sources.redhat.com@sourceware.org>
Delivered-To: listarch-gdb-prs@sources.redhat.com
Received: (qmail 30566 invoked by alias); 17 Oct 2014 12:47:49 -0000
Mailing-List: contact gdb-prs-help@sourceware.org; run by ezmlm
Precedence: bulk
List-Id: <gdb-prs.sourceware.org>
List-Subscribe: <mailto:gdb-prs-subscribe@sourceware.org>
List-Archive: <http://sourceware.org/ml/gdb-prs/>
List-Post: <mailto:gdb-prs@sourceware.org>
List-Help: <mailto:gdb-prs-help@sourceware.org>, <http://sourceware.org/lists.html#faqs>
Sender: gdb-prs-owner@sourceware.org
Delivered-To: mailing list gdb-prs@sourceware.org
Received: (qmail 30524 invoked by uid 55); 17 Oct 2014 12:47:47 -0000
From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug gdb/17471] repeating a background command makes it foreground
Date: Fri, 17 Oct 2014 12:47:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gdb
X-Bugzilla-Component: gdb
X-Bugzilla-Version: HEAD
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: cvs-commit at gcc dot gnu.org
X-Bugzilla-Status: ASSIGNED
X-Bugzilla-Priority: P2
X-Bugzilla-Assigned-To: palves at redhat dot com
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-17471-4717-q8W9UjJXbk@http.sourceware.org/bugzilla/>
In-Reply-To: <bug-17471-4717@http.sourceware.org/bugzilla/>
References: <bug-17471-4717@http.sourceware.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://sourceware.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-q4/txt/msg00083.txt.bz2
Content-length: 15605
https://sourceware.org/bugzilla/show_bug.cgi?id=17471
--- Comment #2 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".
The branch, master has been updated
via 6c4486e63f7583ed85a0c72841f6ccceebbf858e (commit)
via 0ff33695eeedf3c2e8cdec8690ae4a10a66b3389 (commit)
via 6fdebc3d1c54d2202f7637e7345fe6d25c7ed93b (commit)
via 5842f62aad5c20dbb3511208efbc40a8d638b6d3 (commit)
from 3f7308212cefe5cd958b29e0b9e92d92c4dbe941 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6c4486e63f7583ed85a0c72841f6ccceebbf858e
commit 6c4486e63f7583ed85a0c72841f6ccceebbf858e
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:26 2014 +0100
PR gdb/17471: Repeating a background command makes it foreground
When we repeat a command, by just pressing <ret>, the input from the
previous command is reused for the new command invocation.
When an execution command strips the "&" out of its incoming argument
string, to detect background execution, we poke a '\0' directly to the
incoming argument string.
Combine both, and a repeat of a background command loses the "&".
This is actually only visible if args other than "&" are specified
(e.g., "c 1&" or "next 2&" or "c -a&"), as in the special case of "&"
alone (e.g. "c&") doesn't actually clobber the incoming string.
Fix this by making strip_bg_char return a new string instead of poking
a hole in the input string.
New test included.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17471
* infcmd.c (strip_bg_char): Change prototype and rewrite. Now
returns a copy of the input.
(run_command_1, continue_command, step_1, jump_command)
(signal_command, until_command, advance_command, finish_command)
(attach_command): Adjust and install a cleanup to free the
stripped args.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17471
* gdb.base/bg-execution-repeat.c: New file.
* gdb.base/bg-execution-repeat.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0ff33695eeedf3c2e8cdec8690ae4a10a66b3389
commit 0ff33695eeedf3c2e8cdec8690ae4a10a66b3389
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:25 2014 +0100
PR gdb/17300: Input after "c -a" crashes readline/GDB
If all threads in the target were already running when the user does
"c -a", nothing puts the inferior's terminal settings in effect and
removes stdin from the event loop, which we must when running a
foreground command. The result is that user input afterwards crashes
readline/gdb:
(gdb) start
Temporary breakpoint 1 at 0x4005d4: file continue-all-already-running.c,
line 23.
Starting program: continue-all-already-running
Temporary breakpoint 1, main () at continue-all-already-running.c:23
23 sleep (10);
(gdb) c -a&
Continuing.
(gdb) c -a
Continuing.
p 1
readline: readline_callback_read_char() called with no handler!
Aborted (core dumped)
$
Backtrace:
Program received signal SIGABRT, Aborted.
0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(top-gdb) p 1
$1 = 1
(top-gdb) bt
#0 0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x0000003b36a36f68 in __GI_abort () at abort.c:89
#2 0x0000000000784aa9 in rl_callback_read_char () at
readline/callback.c:116
#3 0x0000000000619181 in rl_callback_read_char_wrapper (client_data=0x0)
at gdb/event-top.c:167
#4 0x0000000000619557 in stdin_event_handler (error=0, client_data=0x0)
at gdb/event-top.c:373
#5 0x000000000061814a in handle_file_event (data=...) at
gdb/event-loop.c:763
#6 0x0000000000617631 in process_event () at gdb/event-loop.c:340
#7 0x00000000006176f8 in gdb_do_one_event () at gdb/event-loop.c:404
#8 0x0000000000617748 in start_event_loop () at gdb/event-loop.c:429
#9 0x00000000006191b3 in cli_command_loop (data=0x0) at
gdb/event-top.c:182
#10 0x000000000060f538 in current_interp_command_loop () at
gdb/interps.c:318
#11 0x0000000000610701 in captured_command_loop (data=0x0) at
gdb/main.c:323
#12 0x000000000060c3f5 in catch_errors (func=0x6106e6
<captured_command_loop>, func_args=0x0, errstring=0x9002c1 "",
mask=RETURN_MASK_ALL)
at gdb/exceptions.c:237
#13 0x0000000000611bff in captured_main (data=0x7fffffffd780) at
gdb/main.c:1151
#14 0x000000000060c3f5 in catch_errors (func=0x610afe <captured_main>,
func_args=0x7fffffffd780, errstring=0x9002c1 "", mask=RETURN_MASK_ALL)
at gdb/exceptions.c:237
#15 0x0000000000611c28 in gdb_main (args=0x7fffffffd780) at
gdb/main.c:1159
#16 0x000000000045ef97 in main (argc=5, argv=0x7fffffffd888) at
gdb/gdb.c:32
(top-gdb)
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17300
* infcmd.c (continue_1): If continuing all threads in the
foreground, make sure the inferior's terminal settings are put in
effect.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17300
* gdb.base/continue-all-already-running.c: New file.
* gdb.base/continue-all-already-running.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6fdebc3d1c54d2202f7637e7345fe6d25c7ed93b
commit 6fdebc3d1c54d2202f7637e7345fe6d25c7ed93b
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:25 2014 +0100
PR gdb/17472: With annotations, input while executing in the foreground
crashes readline/GDB
Jan caught an intermittent GDB crash with the annota1.exp test:
Starting program: .../gdb/testsuite/gdb.base/annota1 ^M
[...]
FAIL: gdb.base/annota1.exp: run until main breakpoint (timeout)
[...]
readline: readline_callback_read_char() called with no handler!^M
ERROR: Process no longer exists
All we need to is to continue the inferior in the foreground, and type
a command while the inferior is running. E.g.:
(gdb) set annotate 2
▒▒pre-prompt
(gdb)
▒▒prompt
c
▒▒post-prompt
Continuing.
▒▒starting
▒▒frames-invalid
*inferior is running now*
p 1<ret>
readline: readline_callback_read_char() called with no handler!
Aborted (core dumped)
$
When we run a foreground execution command we call
target_terminal_inferior to stop GDB from processing input, and to put
the inferior's terminal settings in effect. Then we tell readline to
hide the prompt with display_gdb_prompt, which clears readline's input
callback too. When the target stops, we call target_terminal_ours,
which re-installs stdin in the event loop, and then we redisplay the
prompt, reinstalling the readline callbacks.
However, when annotations are in effect, the "frames-invalid"
annotation code calls target_terminal_ours after 'resume' had already
called target_terminal_inferior:
(top-gdb) bt
#0 0x000000000056b82f in annotate_frames_invalid () at gdb/annotate.c:219
#1 0x000000000072e6cc in reinit_frame_cache () at gdb/frame.c:1705
#2 0x0000000000594bb9 in registers_changed_ptid (ptid=...) at
gdb/regcache.c:612
#3 0x000000000064cca1 in target_resume (ptid=..., step=1,
signal=GDB_SIGNAL_0) at gdb/target.c:2136
#4 0x00000000005f57af in resume (step=1, sig=GDB_SIGNAL_0) at
gdb/infrun.c:2263
#5 0x00000000005f6051 in proceed (addr=18446744073709551615,
siggnal=GDB_SIGNAL_DEFAULT, step=1) at gdb/infrun.c:2613
And then once we hide the prompt and remove readline's input handler
callback, we're in a bad state. We end up with the target running
supposedly in the foreground, but with stdin still installed on the
event loop. Any input then calls into readline, which aborts because
no rl_linefunc callback handler is installed:
Program received signal SIGABRT, Aborted.
0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(top-gdb) bt
#0 0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x0000003b36a36f68 in __GI_abort () at abort.c:89
During symbol reading, debug info gives source 9 included from file at
zero line 0.
During symbol reading, debug info gives command-line macro definition with
non-zero line 19: _STDC_PREDEF_H 1.
#2 0x0000000000784a25 in rl_callback_read_char () at
src/readline/callback.c:116
#3 0x0000000000619111 in rl_callback_read_char_wrapper (client_data=0x0)
at src/gdb/event-top.c:167
#4 0x00000000006194e7 in stdin_event_handler (error=0, client_data=0x0)
at src/gdb/event-top.c:373
#5 0x00000000006180da in handle_file_event (data=...) at
src/gdb/event-loop.c:763
#6 0x00000000006175c1 in process_event () at src/gdb/event-loop.c:340
#7 0x0000000000617688 in gdb_do_one_event () at src/gdb/event-loop.c:404
#8 0x00000000006176d8 in start_event_loop () at src/gdb/event-loop.c:429
#9 0x0000000000619143 in cli_command_loop (data=0x0) at
src/gdb/event-top.c:182
#10 0x000000000060f4c8 in current_interp_command_loop () at
src/gdb/interps.c:318
#11 0x0000000000610691 in captured_command_loop (data=0x0) at
src/gdb/main.c:323
#12 0x000000000060c385 in catch_errors (func=0x610676
<captured_command_loop>, func_args=0x0, errstring=0x900241 "",
mask=RETURN_MASK_ALL)
at src/gdb/exceptions.c:237
#13 0x0000000000611b8f in captured_main (data=0x7fffffffd7b0) at
src/gdb/main.c:1151
#14 0x000000000060c385 in catch_errors (func=0x610a8e <captured_main>,
func_args=0x7fffffffd7b0, errstring=0x900241 "", mask=RETURN_MASK_ALL)
at src/gdb/exceptions.c:237
#15 0x0000000000611bb8 in gdb_main (args=0x7fffffffd7b0) at
src/gdb/main.c:1159
#16 0x000000000045ef57 in main (argc=3, argv=0x7fffffffd8b8) at
src/gdb/gdb.c:32
The fix is to make the annotation code call target_terminal_inferior
again after printing, if the inferior's settings were in effect.
While at it, when we're doing output only, instead of
target_terminal_ours, we should call target_terminal_ours_for_output.
The latter doesn't actually remove stdin from the event loop, and also
leaves SIGINT forwarded to the target.
New test included.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17472
* annotate.c (annotate_breakpoints_invalid): Use
target_terminal_our_for_output instead of target_terminal_ours.
Give back the terminal to the target.
(annotate_frames_invalid): Likewise.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17472
* gdb.base/annota-input-while-running.c: New file.
* gdb.base/annota-input-while-running.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5842f62aad5c20dbb3511208efbc40a8d638b6d3
commit 5842f62aad5c20dbb3511208efbc40a8d638b6d3
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:25 2014 +0100
Make common code handle target_terminal_* idempotency
I found a place that should be giving back the terminal to the target,
but only if the target was already owning it. So I need to add a
getter for who owns the terminal.
The trouble is that several places/target have their own globals to
track this state:
- inflow.c:terminal_is_ours
- remote.c:remote_async_terminal_ours_p
- linux-nat.c:async_terminal_is_ours
- go32-nat.c:terminal_is_ours
While one might think of adding a new target_ops method to query this,
conceptually, this state isn't really part of a particular target_ops.
Considering multi-target, the core shouldn't have to ask all targets
to know whether it's GDB that owns the terminal. There's only one GDB
(or rather, only one top level interpreter).
So what this comment does is add a new global that is tracked by the
core instead. A subsequent pass may later remove the other globals.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
* target.c (enum terminal_state): New enum.
(terminal_state): New global.
(target_terminal_init): New function.
(target_terminal_inferior): Skip if inferior already owns the
terminal.
(target_terminal_ours, target_terminal_ours_for_output): New
functions.
* target.h (target_terminal_init): Convert to function prototype.
(target_terminal_ours_for_output): Convert to function prototype
and tweak comment.
(target_terminal_ours): Convert to function prototype and tweak
comment.
* windows-nat.c (do_initial_windows_stuff): Call
target_terminal_init instead of child_terminal_init_with_pgrp.
-----------------------------------------------------------------------
Summary of changes:
gdb/ChangeLog | 42 +++++
gdb/annotate.c | 22 +++-
gdb/infcmd.c | 160 +++++++++++++-------
gdb/target.c | 64 ++++++++
gdb/target.h | 25 ++--
gdb/testsuite/ChangeLog | 18 +++
.../gdb.base/annota-input-while-running.c | 25 +++
.../gdb.base/annota-input-while-running.exp | 130 ++++++++++++++++
gdb/testsuite/gdb.base/bg-execution-repeat.c | 33 ++++
gdb/testsuite/gdb.base/bg-execution-repeat.exp | 86 +++++++++++
.../gdb.base/continue-all-already-running.c | 25 +++
.../gdb.base/continue-all-already-running.exp | 79 ++++++++++
gdb/windows-nat.c | 2 +-
13 files changed, 642 insertions(+), 69 deletions(-)
create mode 100644 gdb/testsuite/gdb.base/annota-input-while-running.c
create mode 100644 gdb/testsuite/gdb.base/annota-input-while-running.exp
create mode 100644 gdb/testsuite/gdb.base/bg-execution-repeat.c
create mode 100644 gdb/testsuite/gdb.base/bg-execution-repeat.exp
create mode 100644 gdb/testsuite/gdb.base/continue-all-already-running.c
create mode 100644 gdb/testsuite/gdb.base/continue-all-already-running.exp
--
You are receiving this mail because:
You are on the CC list for the bug.
>From gdb-prs-return-16842-listarch-gdb-prs=sources.redhat.com@sourceware.org Fri Oct 17 12:47:50 2014
Return-Path: <gdb-prs-return-16842-listarch-gdb-prs=sources.redhat.com@sourceware.org>
Delivered-To: listarch-gdb-prs@sources.redhat.com
Received: (qmail 30682 invoked by alias); 17 Oct 2014 12:47:50 -0000
Mailing-List: contact gdb-prs-help@sourceware.org; run by ezmlm
Precedence: bulk
List-Id: <gdb-prs.sourceware.org>
List-Subscribe: <mailto:gdb-prs-subscribe@sourceware.org>
List-Archive: <http://sourceware.org/ml/gdb-prs/>
List-Post: <mailto:gdb-prs@sourceware.org>
List-Help: <mailto:gdb-prs-help@sourceware.org>, <http://sourceware.org/lists.html#faqs>
Sender: gdb-prs-owner@sourceware.org
Delivered-To: mailing list gdb-prs@sourceware.org
Received: (qmail 30539 invoked by uid 55); 17 Oct 2014 12:47:49 -0000
From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug gdb/17472] with annotations, input while executing in the
foreground crashes readline/gdb
Date: Fri, 17 Oct 2014 12:47:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gdb
X-Bugzilla-Component: gdb
X-Bugzilla-Version: HEAD
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: cvs-commit at gcc dot gnu.org
X-Bugzilla-Status: ASSIGNED
X-Bugzilla-Priority: P2
X-Bugzilla-Assigned-To: palves at redhat dot com
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-17472-4717-bQ4vWsSTn5@http.sourceware.org/bugzilla/>
In-Reply-To: <bug-17472-4717@http.sourceware.org/bugzilla/>
References: <bug-17472-4717@http.sourceware.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://sourceware.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-q4/txt/msg00084.txt.bz2
Content-length: 15605
https://sourceware.org/bugzilla/show_bug.cgi?id=17472
--- Comment #3 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".
The branch, master has been updated
via 6c4486e63f7583ed85a0c72841f6ccceebbf858e (commit)
via 0ff33695eeedf3c2e8cdec8690ae4a10a66b3389 (commit)
via 6fdebc3d1c54d2202f7637e7345fe6d25c7ed93b (commit)
via 5842f62aad5c20dbb3511208efbc40a8d638b6d3 (commit)
from 3f7308212cefe5cd958b29e0b9e92d92c4dbe941 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6c4486e63f7583ed85a0c72841f6ccceebbf858e
commit 6c4486e63f7583ed85a0c72841f6ccceebbf858e
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:26 2014 +0100
PR gdb/17471: Repeating a background command makes it foreground
When we repeat a command, by just pressing <ret>, the input from the
previous command is reused for the new command invocation.
When an execution command strips the "&" out of its incoming argument
string, to detect background execution, we poke a '\0' directly to the
incoming argument string.
Combine both, and a repeat of a background command loses the "&".
This is actually only visible if args other than "&" are specified
(e.g., "c 1&" or "next 2&" or "c -a&"), as in the special case of "&"
alone (e.g. "c&") doesn't actually clobber the incoming string.
Fix this by making strip_bg_char return a new string instead of poking
a hole in the input string.
New test included.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17471
* infcmd.c (strip_bg_char): Change prototype and rewrite. Now
returns a copy of the input.
(run_command_1, continue_command, step_1, jump_command)
(signal_command, until_command, advance_command, finish_command)
(attach_command): Adjust and install a cleanup to free the
stripped args.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17471
* gdb.base/bg-execution-repeat.c: New file.
* gdb.base/bg-execution-repeat.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0ff33695eeedf3c2e8cdec8690ae4a10a66b3389
commit 0ff33695eeedf3c2e8cdec8690ae4a10a66b3389
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:25 2014 +0100
PR gdb/17300: Input after "c -a" crashes readline/GDB
If all threads in the target were already running when the user does
"c -a", nothing puts the inferior's terminal settings in effect and
removes stdin from the event loop, which we must when running a
foreground command. The result is that user input afterwards crashes
readline/gdb:
(gdb) start
Temporary breakpoint 1 at 0x4005d4: file continue-all-already-running.c,
line 23.
Starting program: continue-all-already-running
Temporary breakpoint 1, main () at continue-all-already-running.c:23
23 sleep (10);
(gdb) c -a&
Continuing.
(gdb) c -a
Continuing.
p 1
readline: readline_callback_read_char() called with no handler!
Aborted (core dumped)
$
Backtrace:
Program received signal SIGABRT, Aborted.
0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(top-gdb) p 1
$1 = 1
(top-gdb) bt
#0 0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x0000003b36a36f68 in __GI_abort () at abort.c:89
#2 0x0000000000784aa9 in rl_callback_read_char () at
readline/callback.c:116
#3 0x0000000000619181 in rl_callback_read_char_wrapper (client_data=0x0)
at gdb/event-top.c:167
#4 0x0000000000619557 in stdin_event_handler (error=0, client_data=0x0)
at gdb/event-top.c:373
#5 0x000000000061814a in handle_file_event (data=...) at
gdb/event-loop.c:763
#6 0x0000000000617631 in process_event () at gdb/event-loop.c:340
#7 0x00000000006176f8 in gdb_do_one_event () at gdb/event-loop.c:404
#8 0x0000000000617748 in start_event_loop () at gdb/event-loop.c:429
#9 0x00000000006191b3 in cli_command_loop (data=0x0) at
gdb/event-top.c:182
#10 0x000000000060f538 in current_interp_command_loop () at
gdb/interps.c:318
#11 0x0000000000610701 in captured_command_loop (data=0x0) at
gdb/main.c:323
#12 0x000000000060c3f5 in catch_errors (func=0x6106e6
<captured_command_loop>, func_args=0x0, errstring=0x9002c1 "",
mask=RETURN_MASK_ALL)
at gdb/exceptions.c:237
#13 0x0000000000611bff in captured_main (data=0x7fffffffd780) at
gdb/main.c:1151
#14 0x000000000060c3f5 in catch_errors (func=0x610afe <captured_main>,
func_args=0x7fffffffd780, errstring=0x9002c1 "", mask=RETURN_MASK_ALL)
at gdb/exceptions.c:237
#15 0x0000000000611c28 in gdb_main (args=0x7fffffffd780) at
gdb/main.c:1159
#16 0x000000000045ef97 in main (argc=5, argv=0x7fffffffd888) at
gdb/gdb.c:32
(top-gdb)
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17300
* infcmd.c (continue_1): If continuing all threads in the
foreground, make sure the inferior's terminal settings are put in
effect.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17300
* gdb.base/continue-all-already-running.c: New file.
* gdb.base/continue-all-already-running.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6fdebc3d1c54d2202f7637e7345fe6d25c7ed93b
commit 6fdebc3d1c54d2202f7637e7345fe6d25c7ed93b
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:25 2014 +0100
PR gdb/17472: With annotations, input while executing in the foreground
crashes readline/GDB
Jan caught an intermittent GDB crash with the annota1.exp test:
Starting program: .../gdb/testsuite/gdb.base/annota1 ^M
[...]
FAIL: gdb.base/annota1.exp: run until main breakpoint (timeout)
[...]
readline: readline_callback_read_char() called with no handler!^M
ERROR: Process no longer exists
All we need to is to continue the inferior in the foreground, and type
a command while the inferior is running. E.g.:
(gdb) set annotate 2
▒▒pre-prompt
(gdb)
▒▒prompt
c
▒▒post-prompt
Continuing.
▒▒starting
▒▒frames-invalid
*inferior is running now*
p 1<ret>
readline: readline_callback_read_char() called with no handler!
Aborted (core dumped)
$
When we run a foreground execution command we call
target_terminal_inferior to stop GDB from processing input, and to put
the inferior's terminal settings in effect. Then we tell readline to
hide the prompt with display_gdb_prompt, which clears readline's input
callback too. When the target stops, we call target_terminal_ours,
which re-installs stdin in the event loop, and then we redisplay the
prompt, reinstalling the readline callbacks.
However, when annotations are in effect, the "frames-invalid"
annotation code calls target_terminal_ours after 'resume' had already
called target_terminal_inferior:
(top-gdb) bt
#0 0x000000000056b82f in annotate_frames_invalid () at gdb/annotate.c:219
#1 0x000000000072e6cc in reinit_frame_cache () at gdb/frame.c:1705
#2 0x0000000000594bb9 in registers_changed_ptid (ptid=...) at
gdb/regcache.c:612
#3 0x000000000064cca1 in target_resume (ptid=..., step=1,
signal=GDB_SIGNAL_0) at gdb/target.c:2136
#4 0x00000000005f57af in resume (step=1, sig=GDB_SIGNAL_0) at
gdb/infrun.c:2263
#5 0x00000000005f6051 in proceed (addr=18446744073709551615,
siggnal=GDB_SIGNAL_DEFAULT, step=1) at gdb/infrun.c:2613
And then once we hide the prompt and remove readline's input handler
callback, we're in a bad state. We end up with the target running
supposedly in the foreground, but with stdin still installed on the
event loop. Any input then calls into readline, which aborts because
no rl_linefunc callback handler is installed:
Program received signal SIGABRT, Aborted.
0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(top-gdb) bt
#0 0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x0000003b36a36f68 in __GI_abort () at abort.c:89
During symbol reading, debug info gives source 9 included from file at
zero line 0.
During symbol reading, debug info gives command-line macro definition with
non-zero line 19: _STDC_PREDEF_H 1.
#2 0x0000000000784a25 in rl_callback_read_char () at
src/readline/callback.c:116
#3 0x0000000000619111 in rl_callback_read_char_wrapper (client_data=0x0)
at src/gdb/event-top.c:167
#4 0x00000000006194e7 in stdin_event_handler (error=0, client_data=0x0)
at src/gdb/event-top.c:373
#5 0x00000000006180da in handle_file_event (data=...) at
src/gdb/event-loop.c:763
#6 0x00000000006175c1 in process_event () at src/gdb/event-loop.c:340
#7 0x0000000000617688 in gdb_do_one_event () at src/gdb/event-loop.c:404
#8 0x00000000006176d8 in start_event_loop () at src/gdb/event-loop.c:429
#9 0x0000000000619143 in cli_command_loop (data=0x0) at
src/gdb/event-top.c:182
#10 0x000000000060f4c8 in current_interp_command_loop () at
src/gdb/interps.c:318
#11 0x0000000000610691 in captured_command_loop (data=0x0) at
src/gdb/main.c:323
#12 0x000000000060c385 in catch_errors (func=0x610676
<captured_command_loop>, func_args=0x0, errstring=0x900241 "",
mask=RETURN_MASK_ALL)
at src/gdb/exceptions.c:237
#13 0x0000000000611b8f in captured_main (data=0x7fffffffd7b0) at
src/gdb/main.c:1151
#14 0x000000000060c385 in catch_errors (func=0x610a8e <captured_main>,
func_args=0x7fffffffd7b0, errstring=0x900241 "", mask=RETURN_MASK_ALL)
at src/gdb/exceptions.c:237
#15 0x0000000000611bb8 in gdb_main (args=0x7fffffffd7b0) at
src/gdb/main.c:1159
#16 0x000000000045ef57 in main (argc=3, argv=0x7fffffffd8b8) at
src/gdb/gdb.c:32
The fix is to make the annotation code call target_terminal_inferior
again after printing, if the inferior's settings were in effect.
While at it, when we're doing output only, instead of
target_terminal_ours, we should call target_terminal_ours_for_output.
The latter doesn't actually remove stdin from the event loop, and also
leaves SIGINT forwarded to the target.
New test included.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17472
* annotate.c (annotate_breakpoints_invalid): Use
target_terminal_our_for_output instead of target_terminal_ours.
Give back the terminal to the target.
(annotate_frames_invalid): Likewise.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17472
* gdb.base/annota-input-while-running.c: New file.
* gdb.base/annota-input-while-running.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5842f62aad5c20dbb3511208efbc40a8d638b6d3
commit 5842f62aad5c20dbb3511208efbc40a8d638b6d3
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:25 2014 +0100
Make common code handle target_terminal_* idempotency
I found a place that should be giving back the terminal to the target,
but only if the target was already owning it. So I need to add a
getter for who owns the terminal.
The trouble is that several places/target have their own globals to
track this state:
- inflow.c:terminal_is_ours
- remote.c:remote_async_terminal_ours_p
- linux-nat.c:async_terminal_is_ours
- go32-nat.c:terminal_is_ours
While one might think of adding a new target_ops method to query this,
conceptually, this state isn't really part of a particular target_ops.
Considering multi-target, the core shouldn't have to ask all targets
to know whether it's GDB that owns the terminal. There's only one GDB
(or rather, only one top level interpreter).
So what this comment does is add a new global that is tracked by the
core instead. A subsequent pass may later remove the other globals.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
* target.c (enum terminal_state): New enum.
(terminal_state): New global.
(target_terminal_init): New function.
(target_terminal_inferior): Skip if inferior already owns the
terminal.
(target_terminal_ours, target_terminal_ours_for_output): New
functions.
* target.h (target_terminal_init): Convert to function prototype.
(target_terminal_ours_for_output): Convert to function prototype
and tweak comment.
(target_terminal_ours): Convert to function prototype and tweak
comment.
* windows-nat.c (do_initial_windows_stuff): Call
target_terminal_init instead of child_terminal_init_with_pgrp.
-----------------------------------------------------------------------
Summary of changes:
gdb/ChangeLog | 42 +++++
gdb/annotate.c | 22 +++-
gdb/infcmd.c | 160 +++++++++++++-------
gdb/target.c | 64 ++++++++
gdb/target.h | 25 ++--
gdb/testsuite/ChangeLog | 18 +++
.../gdb.base/annota-input-while-running.c | 25 +++
.../gdb.base/annota-input-while-running.exp | 130 ++++++++++++++++
gdb/testsuite/gdb.base/bg-execution-repeat.c | 33 ++++
gdb/testsuite/gdb.base/bg-execution-repeat.exp | 86 +++++++++++
.../gdb.base/continue-all-already-running.c | 25 +++
.../gdb.base/continue-all-already-running.exp | 79 ++++++++++
gdb/windows-nat.c | 2 +-
13 files changed, 642 insertions(+), 69 deletions(-)
create mode 100644 gdb/testsuite/gdb.base/annota-input-while-running.c
create mode 100644 gdb/testsuite/gdb.base/annota-input-while-running.exp
create mode 100644 gdb/testsuite/gdb.base/bg-execution-repeat.c
create mode 100644 gdb/testsuite/gdb.base/bg-execution-repeat.exp
create mode 100644 gdb/testsuite/gdb.base/continue-all-already-running.c
create mode 100644 gdb/testsuite/gdb.base/continue-all-already-running.exp
--
You are receiving this mail because:
You are on the CC list for the bug.
>From gdb-prs-return-16845-listarch-gdb-prs=sources.redhat.com@sourceware.org Fri Oct 17 13:00:35 2014
Return-Path: <gdb-prs-return-16845-listarch-gdb-prs=sources.redhat.com@sourceware.org>
Delivered-To: listarch-gdb-prs@sources.redhat.com
Received: (qmail 12222 invoked by alias); 17 Oct 2014 13:00:35 -0000
Mailing-List: contact gdb-prs-help@sourceware.org; run by ezmlm
Precedence: bulk
List-Id: <gdb-prs.sourceware.org>
List-Subscribe: <mailto:gdb-prs-subscribe@sourceware.org>
List-Archive: <http://sourceware.org/ml/gdb-prs/>
List-Post: <mailto:gdb-prs@sourceware.org>
List-Help: <mailto:gdb-prs-help@sourceware.org>, <http://sourceware.org/lists.html#faqs>
Sender: gdb-prs-owner@sourceware.org
Delivered-To: mailing list gdb-prs@sourceware.org
Received: (qmail 12093 invoked by uid 55); 17 Oct 2014 13:00:33 -0000
From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug gdb/17472] with annotations, input while executing in the
foreground crashes readline/gdb
Date: Fri, 17 Oct 2014 13:00:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gdb
X-Bugzilla-Component: gdb
X-Bugzilla-Version: HEAD
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: cvs-commit at gcc dot gnu.org
X-Bugzilla-Status: ASSIGNED
X-Bugzilla-Priority: P2
X-Bugzilla-Assigned-To: palves at redhat dot com
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-17472-4717-PaSZsNWqgf@http.sourceware.org/bugzilla/>
In-Reply-To: <bug-17472-4717@http.sourceware.org/bugzilla/>
References: <bug-17472-4717@http.sourceware.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://sourceware.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-q4/txt/msg00088.txt.bz2
Content-length: 15613
https://sourceware.org/bugzilla/show_bug.cgi?id=17472
--- Comment #4 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".
The branch, gdb-7.8-branch has been updated
via 36c57a3ceeb2260913f7d2d349e994dd844cbcae (commit)
via e37951dc10da6940ef354f062fc43ee03687c571 (commit)
via 04f0515702a6e5711d71203fcc0ea488161ba086 (commit)
via 92e08c0d191908b7315603558226c7ca0bfa86a5 (commit)
from e7366593996e36a8ac452fc4577725fe9c3556ca (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=36c57a3ceeb2260913f7d2d349e994dd844cbcae
commit 36c57a3ceeb2260913f7d2d349e994dd844cbcae
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:26 2014 +0100
PR gdb/17471: Repeating a background command makes it foreground
When we repeat a command, by just pressing <ret>, the input from the
previous command is reused for the new command invocation.
When an execution command strips the "&" out of its incoming argument
string, to detect background execution, we poke a '\0' directly to the
incoming argument string.
Combine both, and a repeat of a background command loses the "&".
This is actually only visible if args other than "&" are specified
(e.g., "c 1&" or "next 2&" or "c -a&"), as in the special case of "&"
alone (e.g. "c&") doesn't actually clobber the incoming string.
Fix this by making strip_bg_char return a new string instead of poking
a hole in the input string.
New test included.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17471
* infcmd.c (strip_bg_char): Change prototype and rewrite. Now
returns a copy of the input.
(run_command_1, continue_command, step_1, jump_command)
(signal_command, until_command, advance_command, finish_command)
(attach_command): Adjust and install a cleanup to free the
stripped args.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17471
* gdb.base/bg-execution-repeat.c: New file.
* gdb.base/bg-execution-repeat.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e37951dc10da6940ef354f062fc43ee03687c571
commit e37951dc10da6940ef354f062fc43ee03687c571
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:25 2014 +0100
PR gdb/17300: Input after "c -a" crashes readline/GDB
If all threads in the target were already running when the user does
"c -a", nothing puts the inferior's terminal settings in effect and
removes stdin from the event loop, which we must when running a
foreground command. The result is that user input afterwards crashes
readline/gdb:
(gdb) start
Temporary breakpoint 1 at 0x4005d4: file continue-all-already-running.c,
line 23.
Starting program: continue-all-already-running
Temporary breakpoint 1, main () at continue-all-already-running.c:23
23 sleep (10);
(gdb) c -a&
Continuing.
(gdb) c -a
Continuing.
p 1
readline: readline_callback_read_char() called with no handler!
Aborted (core dumped)
$
Backtrace:
Program received signal SIGABRT, Aborted.
0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(top-gdb) p 1
$1 = 1
(top-gdb) bt
#0 0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x0000003b36a36f68 in __GI_abort () at abort.c:89
#2 0x0000000000784aa9 in rl_callback_read_char () at
readline/callback.c:116
#3 0x0000000000619181 in rl_callback_read_char_wrapper (client_data=0x0)
at gdb/event-top.c:167
#4 0x0000000000619557 in stdin_event_handler (error=0, client_data=0x0)
at gdb/event-top.c:373
#5 0x000000000061814a in handle_file_event (data=...) at
gdb/event-loop.c:763
#6 0x0000000000617631 in process_event () at gdb/event-loop.c:340
#7 0x00000000006176f8 in gdb_do_one_event () at gdb/event-loop.c:404
#8 0x0000000000617748 in start_event_loop () at gdb/event-loop.c:429
#9 0x00000000006191b3 in cli_command_loop (data=0x0) at
gdb/event-top.c:182
#10 0x000000000060f538 in current_interp_command_loop () at
gdb/interps.c:318
#11 0x0000000000610701 in captured_command_loop (data=0x0) at
gdb/main.c:323
#12 0x000000000060c3f5 in catch_errors (func=0x6106e6
<captured_command_loop>, func_args=0x0, errstring=0x9002c1 "",
mask=RETURN_MASK_ALL)
at gdb/exceptions.c:237
#13 0x0000000000611bff in captured_main (data=0x7fffffffd780) at
gdb/main.c:1151
#14 0x000000000060c3f5 in catch_errors (func=0x610afe <captured_main>,
func_args=0x7fffffffd780, errstring=0x9002c1 "", mask=RETURN_MASK_ALL)
at gdb/exceptions.c:237
#15 0x0000000000611c28 in gdb_main (args=0x7fffffffd780) at
gdb/main.c:1159
#16 0x000000000045ef97 in main (argc=5, argv=0x7fffffffd888) at
gdb/gdb.c:32
(top-gdb)
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17300
* infcmd.c (continue_1): If continuing all threads in the
foreground, make sure the inferior's terminal settings are put in
effect.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17300
* gdb.base/continue-all-already-running.c: New file.
* gdb.base/continue-all-already-running.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=04f0515702a6e5711d71203fcc0ea488161ba086
commit 04f0515702a6e5711d71203fcc0ea488161ba086
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:25 2014 +0100
PR gdb/17472: With annotations, input while executing in the foreground
crashes readline/GDB
Jan caught an intermittent GDB crash with the annota1.exp test:
Starting program: .../gdb/testsuite/gdb.base/annota1 ^M
[...]
FAIL: gdb.base/annota1.exp: run until main breakpoint (timeout)
[...]
readline: readline_callback_read_char() called with no handler!^M
ERROR: Process no longer exists
All we need to is to continue the inferior in the foreground, and type
a command while the inferior is running. E.g.:
(gdb) set annotate 2
▒▒pre-prompt
(gdb)
▒▒prompt
c
▒▒post-prompt
Continuing.
▒▒starting
▒▒frames-invalid
*inferior is running now*
p 1<ret>
readline: readline_callback_read_char() called with no handler!
Aborted (core dumped)
$
When we run a foreground execution command we call
target_terminal_inferior to stop GDB from processing input, and to put
the inferior's terminal settings in effect. Then we tell readline to
hide the prompt with display_gdb_prompt, which clears readline's input
callback too. When the target stops, we call target_terminal_ours,
which re-installs stdin in the event loop, and then we redisplay the
prompt, reinstalling the readline callbacks.
However, when annotations are in effect, the "frames-invalid"
annotation code calls target_terminal_ours after 'resume' had already
called target_terminal_inferior:
(top-gdb) bt
#0 0x000000000056b82f in annotate_frames_invalid () at gdb/annotate.c:219
#1 0x000000000072e6cc in reinit_frame_cache () at gdb/frame.c:1705
#2 0x0000000000594bb9 in registers_changed_ptid (ptid=...) at
gdb/regcache.c:612
#3 0x000000000064cca1 in target_resume (ptid=..., step=1,
signal=GDB_SIGNAL_0) at gdb/target.c:2136
#4 0x00000000005f57af in resume (step=1, sig=GDB_SIGNAL_0) at
gdb/infrun.c:2263
#5 0x00000000005f6051 in proceed (addr=18446744073709551615,
siggnal=GDB_SIGNAL_DEFAULT, step=1) at gdb/infrun.c:2613
And then once we hide the prompt and remove readline's input handler
callback, we're in a bad state. We end up with the target running
supposedly in the foreground, but with stdin still installed on the
event loop. Any input then calls into readline, which aborts because
no rl_linefunc callback handler is installed:
Program received signal SIGABRT, Aborted.
0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(top-gdb) bt
#0 0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x0000003b36a36f68 in __GI_abort () at abort.c:89
During symbol reading, debug info gives source 9 included from file at
zero line 0.
During symbol reading, debug info gives command-line macro definition with
non-zero line 19: _STDC_PREDEF_H 1.
#2 0x0000000000784a25 in rl_callback_read_char () at
src/readline/callback.c:116
#3 0x0000000000619111 in rl_callback_read_char_wrapper (client_data=0x0)
at src/gdb/event-top.c:167
#4 0x00000000006194e7 in stdin_event_handler (error=0, client_data=0x0)
at src/gdb/event-top.c:373
#5 0x00000000006180da in handle_file_event (data=...) at
src/gdb/event-loop.c:763
#6 0x00000000006175c1 in process_event () at src/gdb/event-loop.c:340
#7 0x0000000000617688 in gdb_do_one_event () at src/gdb/event-loop.c:404
#8 0x00000000006176d8 in start_event_loop () at src/gdb/event-loop.c:429
#9 0x0000000000619143 in cli_command_loop (data=0x0) at
src/gdb/event-top.c:182
#10 0x000000000060f4c8 in current_interp_command_loop () at
src/gdb/interps.c:318
#11 0x0000000000610691 in captured_command_loop (data=0x0) at
src/gdb/main.c:323
#12 0x000000000060c385 in catch_errors (func=0x610676
<captured_command_loop>, func_args=0x0, errstring=0x900241 "",
mask=RETURN_MASK_ALL)
at src/gdb/exceptions.c:237
#13 0x0000000000611b8f in captured_main (data=0x7fffffffd7b0) at
src/gdb/main.c:1151
#14 0x000000000060c385 in catch_errors (func=0x610a8e <captured_main>,
func_args=0x7fffffffd7b0, errstring=0x900241 "", mask=RETURN_MASK_ALL)
at src/gdb/exceptions.c:237
#15 0x0000000000611bb8 in gdb_main (args=0x7fffffffd7b0) at
src/gdb/main.c:1159
#16 0x000000000045ef57 in main (argc=3, argv=0x7fffffffd8b8) at
src/gdb/gdb.c:32
The fix is to make the annotation code call target_terminal_inferior
again after printing, if the inferior's settings were in effect.
While at it, when we're doing output only, instead of
target_terminal_ours, we should call target_terminal_ours_for_output.
The latter doesn't actually remove stdin from the event loop, and also
leaves SIGINT forwarded to the target.
New test included.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17472
* annotate.c (annotate_breakpoints_invalid): Use
target_terminal_our_for_output instead of target_terminal_ours.
Give back the terminal to the target.
(annotate_frames_invalid): Likewise.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17472
* gdb.base/annota-input-while-running.c: New file.
* gdb.base/annota-input-while-running.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=92e08c0d191908b7315603558226c7ca0bfa86a5
commit 92e08c0d191908b7315603558226c7ca0bfa86a5
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:49:28 2014 +0100
Make common code handle target_terminal_* idempotency
I found a place that should be giving back the terminal to the target,
but only if the target was already owning it. So I need to add a
getter for who owns the terminal.
The trouble is that several places/target have their own globals to
track this state:
- inflow.c:terminal_is_ours
- remote.c:remote_async_terminal_ours_p
- linux-nat.c:async_terminal_is_ours
- go32-nat.c:terminal_is_ours
While one might think of adding a new target_ops method to query this,
conceptually, this state isn't really part of a particular target_ops.
Considering multi-target, the core shouldn't have to ask all targets
to know whether it's GDB that owns the terminal. There's only one GDB
(or rather, only one top level interpreter).
So what this comment does is add a new global that is tracked by the
core instead. A subsequent pass may later remove the other globals.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
* target.c (enum terminal_state): New enum.
(terminal_state): New global.
(target_terminal_init): New function.
(target_terminal_inferior): Skip if inferior already owns the
terminal.
(target_terminal_ours, target_terminal_ours_for_output): New
functions.
* target.h (target_terminal_init): Convert to function prototype.
(target_terminal_ours_for_output): Convert to function prototype
and tweak comment.
(target_terminal_ours): Convert to function prototype and tweak
comment.
* windows-nat.c (do_initial_windows_stuff): Call
target_terminal_init instead of child_terminal_init_with_pgrp.
-----------------------------------------------------------------------
Summary of changes:
gdb/ChangeLog | 42 +++++
gdb/annotate.c | 22 +++-
gdb/infcmd.c | 160 +++++++++++++-------
gdb/target.c | 64 ++++++++
gdb/target.h | 25 ++--
gdb/testsuite/ChangeLog | 18 +++
.../gdb.base/annota-input-while-running.c | 25 +++
.../gdb.base/annota-input-while-running.exp | 130 ++++++++++++++++
gdb/testsuite/gdb.base/bg-execution-repeat.c | 33 ++++
gdb/testsuite/gdb.base/bg-execution-repeat.exp | 86 +++++++++++
.../gdb.base/continue-all-already-running.c | 25 +++
.../gdb.base/continue-all-already-running.exp | 79 ++++++++++
gdb/windows-nat.c | 2 +-
13 files changed, 642 insertions(+), 69 deletions(-)
create mode 100644 gdb/testsuite/gdb.base/annota-input-while-running.c
create mode 100644 gdb/testsuite/gdb.base/annota-input-while-running.exp
create mode 100644 gdb/testsuite/gdb.base/bg-execution-repeat.c
create mode 100644 gdb/testsuite/gdb.base/bg-execution-repeat.exp
create mode 100644 gdb/testsuite/gdb.base/continue-all-already-running.c
create mode 100644 gdb/testsuite/gdb.base/continue-all-already-running.exp
--
You are receiving this mail because:
You are on the CC list for the bug.
>From gdb-prs-return-16843-listarch-gdb-prs=sources.redhat.com@sourceware.org Fri Oct 17 13:00:33 2014
Return-Path: <gdb-prs-return-16843-listarch-gdb-prs=sources.redhat.com@sourceware.org>
Delivered-To: listarch-gdb-prs@sources.redhat.com
Received: (qmail 12090 invoked by alias); 17 Oct 2014 13:00:33 -0000
Mailing-List: contact gdb-prs-help@sourceware.org; run by ezmlm
Precedence: bulk
List-Id: <gdb-prs.sourceware.org>
List-Subscribe: <mailto:gdb-prs-subscribe@sourceware.org>
List-Archive: <http://sourceware.org/ml/gdb-prs/>
List-Post: <mailto:gdb-prs@sourceware.org>
List-Help: <mailto:gdb-prs-help@sourceware.org>, <http://sourceware.org/lists.html#faqs>
Sender: gdb-prs-owner@sourceware.org
Delivered-To: mailing list gdb-prs@sourceware.org
Received: (qmail 12054 invoked by uid 55); 17 Oct 2014 13:00:31 -0000
From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug gdb/17471] repeating a background command makes it foreground
Date: Fri, 17 Oct 2014 13:00:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gdb
X-Bugzilla-Component: gdb
X-Bugzilla-Version: HEAD
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: cvs-commit at gcc dot gnu.org
X-Bugzilla-Status: ASSIGNED
X-Bugzilla-Priority: P2
X-Bugzilla-Assigned-To: palves at redhat dot com
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-17471-4717-2lsoD7P3TN@http.sourceware.org/bugzilla/>
In-Reply-To: <bug-17471-4717@http.sourceware.org/bugzilla/>
References: <bug-17471-4717@http.sourceware.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://sourceware.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-q4/txt/msg00086.txt.bz2
Content-length: 15613
https://sourceware.org/bugzilla/show_bug.cgi?id=17471
--- Comment #3 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".
The branch, gdb-7.8-branch has been updated
via 36c57a3ceeb2260913f7d2d349e994dd844cbcae (commit)
via e37951dc10da6940ef354f062fc43ee03687c571 (commit)
via 04f0515702a6e5711d71203fcc0ea488161ba086 (commit)
via 92e08c0d191908b7315603558226c7ca0bfa86a5 (commit)
from e7366593996e36a8ac452fc4577725fe9c3556ca (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=36c57a3ceeb2260913f7d2d349e994dd844cbcae
commit 36c57a3ceeb2260913f7d2d349e994dd844cbcae
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:26 2014 +0100
PR gdb/17471: Repeating a background command makes it foreground
When we repeat a command, by just pressing <ret>, the input from the
previous command is reused for the new command invocation.
When an execution command strips the "&" out of its incoming argument
string, to detect background execution, we poke a '\0' directly to the
incoming argument string.
Combine both, and a repeat of a background command loses the "&".
This is actually only visible if args other than "&" are specified
(e.g., "c 1&" or "next 2&" or "c -a&"), as in the special case of "&"
alone (e.g. "c&") doesn't actually clobber the incoming string.
Fix this by making strip_bg_char return a new string instead of poking
a hole in the input string.
New test included.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17471
* infcmd.c (strip_bg_char): Change prototype and rewrite. Now
returns a copy of the input.
(run_command_1, continue_command, step_1, jump_command)
(signal_command, until_command, advance_command, finish_command)
(attach_command): Adjust and install a cleanup to free the
stripped args.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17471
* gdb.base/bg-execution-repeat.c: New file.
* gdb.base/bg-execution-repeat.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e37951dc10da6940ef354f062fc43ee03687c571
commit e37951dc10da6940ef354f062fc43ee03687c571
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:25 2014 +0100
PR gdb/17300: Input after "c -a" crashes readline/GDB
If all threads in the target were already running when the user does
"c -a", nothing puts the inferior's terminal settings in effect and
removes stdin from the event loop, which we must when running a
foreground command. The result is that user input afterwards crashes
readline/gdb:
(gdb) start
Temporary breakpoint 1 at 0x4005d4: file continue-all-already-running.c,
line 23.
Starting program: continue-all-already-running
Temporary breakpoint 1, main () at continue-all-already-running.c:23
23 sleep (10);
(gdb) c -a&
Continuing.
(gdb) c -a
Continuing.
p 1
readline: readline_callback_read_char() called with no handler!
Aborted (core dumped)
$
Backtrace:
Program received signal SIGABRT, Aborted.
0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(top-gdb) p 1
$1 = 1
(top-gdb) bt
#0 0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x0000003b36a36f68 in __GI_abort () at abort.c:89
#2 0x0000000000784aa9 in rl_callback_read_char () at
readline/callback.c:116
#3 0x0000000000619181 in rl_callback_read_char_wrapper (client_data=0x0)
at gdb/event-top.c:167
#4 0x0000000000619557 in stdin_event_handler (error=0, client_data=0x0)
at gdb/event-top.c:373
#5 0x000000000061814a in handle_file_event (data=...) at
gdb/event-loop.c:763
#6 0x0000000000617631 in process_event () at gdb/event-loop.c:340
#7 0x00000000006176f8 in gdb_do_one_event () at gdb/event-loop.c:404
#8 0x0000000000617748 in start_event_loop () at gdb/event-loop.c:429
#9 0x00000000006191b3 in cli_command_loop (data=0x0) at
gdb/event-top.c:182
#10 0x000000000060f538 in current_interp_command_loop () at
gdb/interps.c:318
#11 0x0000000000610701 in captured_command_loop (data=0x0) at
gdb/main.c:323
#12 0x000000000060c3f5 in catch_errors (func=0x6106e6
<captured_command_loop>, func_args=0x0, errstring=0x9002c1 "",
mask=RETURN_MASK_ALL)
at gdb/exceptions.c:237
#13 0x0000000000611bff in captured_main (data=0x7fffffffd780) at
gdb/main.c:1151
#14 0x000000000060c3f5 in catch_errors (func=0x610afe <captured_main>,
func_args=0x7fffffffd780, errstring=0x9002c1 "", mask=RETURN_MASK_ALL)
at gdb/exceptions.c:237
#15 0x0000000000611c28 in gdb_main (args=0x7fffffffd780) at
gdb/main.c:1159
#16 0x000000000045ef97 in main (argc=5, argv=0x7fffffffd888) at
gdb/gdb.c:32
(top-gdb)
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17300
* infcmd.c (continue_1): If continuing all threads in the
foreground, make sure the inferior's terminal settings are put in
effect.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17300
* gdb.base/continue-all-already-running.c: New file.
* gdb.base/continue-all-already-running.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=04f0515702a6e5711d71203fcc0ea488161ba086
commit 04f0515702a6e5711d71203fcc0ea488161ba086
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:25 2014 +0100
PR gdb/17472: With annotations, input while executing in the foreground
crashes readline/GDB
Jan caught an intermittent GDB crash with the annota1.exp test:
Starting program: .../gdb/testsuite/gdb.base/annota1 ^M
[...]
FAIL: gdb.base/annota1.exp: run until main breakpoint (timeout)
[...]
readline: readline_callback_read_char() called with no handler!^M
ERROR: Process no longer exists
All we need to is to continue the inferior in the foreground, and type
a command while the inferior is running. E.g.:
(gdb) set annotate 2
▒▒pre-prompt
(gdb)
▒▒prompt
c
▒▒post-prompt
Continuing.
▒▒starting
▒▒frames-invalid
*inferior is running now*
p 1<ret>
readline: readline_callback_read_char() called with no handler!
Aborted (core dumped)
$
When we run a foreground execution command we call
target_terminal_inferior to stop GDB from processing input, and to put
the inferior's terminal settings in effect. Then we tell readline to
hide the prompt with display_gdb_prompt, which clears readline's input
callback too. When the target stops, we call target_terminal_ours,
which re-installs stdin in the event loop, and then we redisplay the
prompt, reinstalling the readline callbacks.
However, when annotations are in effect, the "frames-invalid"
annotation code calls target_terminal_ours after 'resume' had already
called target_terminal_inferior:
(top-gdb) bt
#0 0x000000000056b82f in annotate_frames_invalid () at gdb/annotate.c:219
#1 0x000000000072e6cc in reinit_frame_cache () at gdb/frame.c:1705
#2 0x0000000000594bb9 in registers_changed_ptid (ptid=...) at
gdb/regcache.c:612
#3 0x000000000064cca1 in target_resume (ptid=..., step=1,
signal=GDB_SIGNAL_0) at gdb/target.c:2136
#4 0x00000000005f57af in resume (step=1, sig=GDB_SIGNAL_0) at
gdb/infrun.c:2263
#5 0x00000000005f6051 in proceed (addr=18446744073709551615,
siggnal=GDB_SIGNAL_DEFAULT, step=1) at gdb/infrun.c:2613
And then once we hide the prompt and remove readline's input handler
callback, we're in a bad state. We end up with the target running
supposedly in the foreground, but with stdin still installed on the
event loop. Any input then calls into readline, which aborts because
no rl_linefunc callback handler is installed:
Program received signal SIGABRT, Aborted.
0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(top-gdb) bt
#0 0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x0000003b36a36f68 in __GI_abort () at abort.c:89
During symbol reading, debug info gives source 9 included from file at
zero line 0.
During symbol reading, debug info gives command-line macro definition with
non-zero line 19: _STDC_PREDEF_H 1.
#2 0x0000000000784a25 in rl_callback_read_char () at
src/readline/callback.c:116
#3 0x0000000000619111 in rl_callback_read_char_wrapper (client_data=0x0)
at src/gdb/event-top.c:167
#4 0x00000000006194e7 in stdin_event_handler (error=0, client_data=0x0)
at src/gdb/event-top.c:373
#5 0x00000000006180da in handle_file_event (data=...) at
src/gdb/event-loop.c:763
#6 0x00000000006175c1 in process_event () at src/gdb/event-loop.c:340
#7 0x0000000000617688 in gdb_do_one_event () at src/gdb/event-loop.c:404
#8 0x00000000006176d8 in start_event_loop () at src/gdb/event-loop.c:429
#9 0x0000000000619143 in cli_command_loop (data=0x0) at
src/gdb/event-top.c:182
#10 0x000000000060f4c8 in current_interp_command_loop () at
src/gdb/interps.c:318
#11 0x0000000000610691 in captured_command_loop (data=0x0) at
src/gdb/main.c:323
#12 0x000000000060c385 in catch_errors (func=0x610676
<captured_command_loop>, func_args=0x0, errstring=0x900241 "",
mask=RETURN_MASK_ALL)
at src/gdb/exceptions.c:237
#13 0x0000000000611b8f in captured_main (data=0x7fffffffd7b0) at
src/gdb/main.c:1151
#14 0x000000000060c385 in catch_errors (func=0x610a8e <captured_main>,
func_args=0x7fffffffd7b0, errstring=0x900241 "", mask=RETURN_MASK_ALL)
at src/gdb/exceptions.c:237
#15 0x0000000000611bb8 in gdb_main (args=0x7fffffffd7b0) at
src/gdb/main.c:1159
#16 0x000000000045ef57 in main (argc=3, argv=0x7fffffffd8b8) at
src/gdb/gdb.c:32
The fix is to make the annotation code call target_terminal_inferior
again after printing, if the inferior's settings were in effect.
While at it, when we're doing output only, instead of
target_terminal_ours, we should call target_terminal_ours_for_output.
The latter doesn't actually remove stdin from the event loop, and also
leaves SIGINT forwarded to the target.
New test included.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17472
* annotate.c (annotate_breakpoints_invalid): Use
target_terminal_our_for_output instead of target_terminal_ours.
Give back the terminal to the target.
(annotate_frames_invalid): Likewise.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17472
* gdb.base/annota-input-while-running.c: New file.
* gdb.base/annota-input-while-running.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=92e08c0d191908b7315603558226c7ca0bfa86a5
commit 92e08c0d191908b7315603558226c7ca0bfa86a5
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:49:28 2014 +0100
Make common code handle target_terminal_* idempotency
I found a place that should be giving back the terminal to the target,
but only if the target was already owning it. So I need to add a
getter for who owns the terminal.
The trouble is that several places/target have their own globals to
track this state:
- inflow.c:terminal_is_ours
- remote.c:remote_async_terminal_ours_p
- linux-nat.c:async_terminal_is_ours
- go32-nat.c:terminal_is_ours
While one might think of adding a new target_ops method to query this,
conceptually, this state isn't really part of a particular target_ops.
Considering multi-target, the core shouldn't have to ask all targets
to know whether it's GDB that owns the terminal. There's only one GDB
(or rather, only one top level interpreter).
So what this comment does is add a new global that is tracked by the
core instead. A subsequent pass may later remove the other globals.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
* target.c (enum terminal_state): New enum.
(terminal_state): New global.
(target_terminal_init): New function.
(target_terminal_inferior): Skip if inferior already owns the
terminal.
(target_terminal_ours, target_terminal_ours_for_output): New
functions.
* target.h (target_terminal_init): Convert to function prototype.
(target_terminal_ours_for_output): Convert to function prototype
and tweak comment.
(target_terminal_ours): Convert to function prototype and tweak
comment.
* windows-nat.c (do_initial_windows_stuff): Call
target_terminal_init instead of child_terminal_init_with_pgrp.
-----------------------------------------------------------------------
Summary of changes:
gdb/ChangeLog | 42 +++++
gdb/annotate.c | 22 +++-
gdb/infcmd.c | 160 +++++++++++++-------
gdb/target.c | 64 ++++++++
gdb/target.h | 25 ++--
gdb/testsuite/ChangeLog | 18 +++
.../gdb.base/annota-input-while-running.c | 25 +++
.../gdb.base/annota-input-while-running.exp | 130 ++++++++++++++++
gdb/testsuite/gdb.base/bg-execution-repeat.c | 33 ++++
gdb/testsuite/gdb.base/bg-execution-repeat.exp | 86 +++++++++++
.../gdb.base/continue-all-already-running.c | 25 +++
.../gdb.base/continue-all-already-running.exp | 79 ++++++++++
gdb/windows-nat.c | 2 +-
13 files changed, 642 insertions(+), 69 deletions(-)
create mode 100644 gdb/testsuite/gdb.base/annota-input-while-running.c
create mode 100644 gdb/testsuite/gdb.base/annota-input-while-running.exp
create mode 100644 gdb/testsuite/gdb.base/bg-execution-repeat.c
create mode 100644 gdb/testsuite/gdb.base/bg-execution-repeat.exp
create mode 100644 gdb/testsuite/gdb.base/continue-all-already-running.c
create mode 100644 gdb/testsuite/gdb.base/continue-all-already-running.exp
--
You are receiving this mail because:
You are on the CC list for the bug.
>From gdb-prs-return-16844-listarch-gdb-prs=sources.redhat.com@sourceware.org Fri Oct 17 13:00:35 2014
Return-Path: <gdb-prs-return-16844-listarch-gdb-prs=sources.redhat.com@sourceware.org>
Delivered-To: listarch-gdb-prs@sources.redhat.com
Received: (qmail 12146 invoked by alias); 17 Oct 2014 13:00:33 -0000
Mailing-List: contact gdb-prs-help@sourceware.org; run by ezmlm
Precedence: bulk
List-Id: <gdb-prs.sourceware.org>
List-Subscribe: <mailto:gdb-prs-subscribe@sourceware.org>
List-Archive: <http://sourceware.org/ml/gdb-prs/>
List-Post: <mailto:gdb-prs@sourceware.org>
List-Help: <mailto:gdb-prs-help@sourceware.org>, <http://sourceware.org/lists.html#faqs>
Sender: gdb-prs-owner@sourceware.org
Delivered-To: mailing list gdb-prs@sourceware.org
Received: (qmail 12088 invoked by uid 55); 17 Oct 2014 13:00:33 -0000
From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug cli/17300] crash in non-stop mode with continue -a &
(readline_callback_read_char() called with no handler!)
Date: Fri, 17 Oct 2014 13:00:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gdb
X-Bugzilla-Component: cli
X-Bugzilla-Version: 7.8
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: cvs-commit at gcc dot gnu.org
X-Bugzilla-Status: ASSIGNED
X-Bugzilla-Priority: P2
X-Bugzilla-Assigned-To: palves at redhat dot com
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-17300-4717-8eFDbncjHV@http.sourceware.org/bugzilla/>
In-Reply-To: <bug-17300-4717@http.sourceware.org/bugzilla/>
References: <bug-17300-4717@http.sourceware.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://sourceware.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-q4/txt/msg00087.txt.bz2
Content-length: 15614
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
--- Comment #10 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".
The branch, gdb-7.8-branch has been updated
via 36c57a3ceeb2260913f7d2d349e994dd844cbcae (commit)
via e37951dc10da6940ef354f062fc43ee03687c571 (commit)
via 04f0515702a6e5711d71203fcc0ea488161ba086 (commit)
via 92e08c0d191908b7315603558226c7ca0bfa86a5 (commit)
from e7366593996e36a8ac452fc4577725fe9c3556ca (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=36c57a3ceeb2260913f7d2d349e994dd844cbcae
commit 36c57a3ceeb2260913f7d2d349e994dd844cbcae
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:26 2014 +0100
PR gdb/17471: Repeating a background command makes it foreground
When we repeat a command, by just pressing <ret>, the input from the
previous command is reused for the new command invocation.
When an execution command strips the "&" out of its incoming argument
string, to detect background execution, we poke a '\0' directly to the
incoming argument string.
Combine both, and a repeat of a background command loses the "&".
This is actually only visible if args other than "&" are specified
(e.g., "c 1&" or "next 2&" or "c -a&"), as in the special case of "&"
alone (e.g. "c&") doesn't actually clobber the incoming string.
Fix this by making strip_bg_char return a new string instead of poking
a hole in the input string.
New test included.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17471
* infcmd.c (strip_bg_char): Change prototype and rewrite. Now
returns a copy of the input.
(run_command_1, continue_command, step_1, jump_command)
(signal_command, until_command, advance_command, finish_command)
(attach_command): Adjust and install a cleanup to free the
stripped args.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17471
* gdb.base/bg-execution-repeat.c: New file.
* gdb.base/bg-execution-repeat.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e37951dc10da6940ef354f062fc43ee03687c571
commit e37951dc10da6940ef354f062fc43ee03687c571
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:25 2014 +0100
PR gdb/17300: Input after "c -a" crashes readline/GDB
If all threads in the target were already running when the user does
"c -a", nothing puts the inferior's terminal settings in effect and
removes stdin from the event loop, which we must when running a
foreground command. The result is that user input afterwards crashes
readline/gdb:
(gdb) start
Temporary breakpoint 1 at 0x4005d4: file continue-all-already-running.c,
line 23.
Starting program: continue-all-already-running
Temporary breakpoint 1, main () at continue-all-already-running.c:23
23 sleep (10);
(gdb) c -a&
Continuing.
(gdb) c -a
Continuing.
p 1
readline: readline_callback_read_char() called with no handler!
Aborted (core dumped)
$
Backtrace:
Program received signal SIGABRT, Aborted.
0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(top-gdb) p 1
$1 = 1
(top-gdb) bt
#0 0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x0000003b36a36f68 in __GI_abort () at abort.c:89
#2 0x0000000000784aa9 in rl_callback_read_char () at
readline/callback.c:116
#3 0x0000000000619181 in rl_callback_read_char_wrapper (client_data=0x0)
at gdb/event-top.c:167
#4 0x0000000000619557 in stdin_event_handler (error=0, client_data=0x0)
at gdb/event-top.c:373
#5 0x000000000061814a in handle_file_event (data=...) at
gdb/event-loop.c:763
#6 0x0000000000617631 in process_event () at gdb/event-loop.c:340
#7 0x00000000006176f8 in gdb_do_one_event () at gdb/event-loop.c:404
#8 0x0000000000617748 in start_event_loop () at gdb/event-loop.c:429
#9 0x00000000006191b3 in cli_command_loop (data=0x0) at
gdb/event-top.c:182
#10 0x000000000060f538 in current_interp_command_loop () at
gdb/interps.c:318
#11 0x0000000000610701 in captured_command_loop (data=0x0) at
gdb/main.c:323
#12 0x000000000060c3f5 in catch_errors (func=0x6106e6
<captured_command_loop>, func_args=0x0, errstring=0x9002c1 "",
mask=RETURN_MASK_ALL)
at gdb/exceptions.c:237
#13 0x0000000000611bff in captured_main (data=0x7fffffffd780) at
gdb/main.c:1151
#14 0x000000000060c3f5 in catch_errors (func=0x610afe <captured_main>,
func_args=0x7fffffffd780, errstring=0x9002c1 "", mask=RETURN_MASK_ALL)
at gdb/exceptions.c:237
#15 0x0000000000611c28 in gdb_main (args=0x7fffffffd780) at
gdb/main.c:1159
#16 0x000000000045ef97 in main (argc=5, argv=0x7fffffffd888) at
gdb/gdb.c:32
(top-gdb)
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17300
* infcmd.c (continue_1): If continuing all threads in the
foreground, make sure the inferior's terminal settings are put in
effect.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17300
* gdb.base/continue-all-already-running.c: New file.
* gdb.base/continue-all-already-running.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=04f0515702a6e5711d71203fcc0ea488161ba086
commit 04f0515702a6e5711d71203fcc0ea488161ba086
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:31:25 2014 +0100
PR gdb/17472: With annotations, input while executing in the foreground
crashes readline/GDB
Jan caught an intermittent GDB crash with the annota1.exp test:
Starting program: .../gdb/testsuite/gdb.base/annota1 ^M
[...]
FAIL: gdb.base/annota1.exp: run until main breakpoint (timeout)
[...]
readline: readline_callback_read_char() called with no handler!^M
ERROR: Process no longer exists
All we need to is to continue the inferior in the foreground, and type
a command while the inferior is running. E.g.:
(gdb) set annotate 2
▒▒pre-prompt
(gdb)
▒▒prompt
c
▒▒post-prompt
Continuing.
▒▒starting
▒▒frames-invalid
*inferior is running now*
p 1<ret>
readline: readline_callback_read_char() called with no handler!
Aborted (core dumped)
$
When we run a foreground execution command we call
target_terminal_inferior to stop GDB from processing input, and to put
the inferior's terminal settings in effect. Then we tell readline to
hide the prompt with display_gdb_prompt, which clears readline's input
callback too. When the target stops, we call target_terminal_ours,
which re-installs stdin in the event loop, and then we redisplay the
prompt, reinstalling the readline callbacks.
However, when annotations are in effect, the "frames-invalid"
annotation code calls target_terminal_ours after 'resume' had already
called target_terminal_inferior:
(top-gdb) bt
#0 0x000000000056b82f in annotate_frames_invalid () at gdb/annotate.c:219
#1 0x000000000072e6cc in reinit_frame_cache () at gdb/frame.c:1705
#2 0x0000000000594bb9 in registers_changed_ptid (ptid=...) at
gdb/regcache.c:612
#3 0x000000000064cca1 in target_resume (ptid=..., step=1,
signal=GDB_SIGNAL_0) at gdb/target.c:2136
#4 0x00000000005f57af in resume (step=1, sig=GDB_SIGNAL_0) at
gdb/infrun.c:2263
#5 0x00000000005f6051 in proceed (addr=18446744073709551615,
siggnal=GDB_SIGNAL_DEFAULT, step=1) at gdb/infrun.c:2613
And then once we hide the prompt and remove readline's input handler
callback, we're in a bad state. We end up with the target running
supposedly in the foreground, but with stdin still installed on the
event loop. Any input then calls into readline, which aborts because
no rl_linefunc callback handler is installed:
Program received signal SIGABRT, Aborted.
0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(top-gdb) bt
#0 0x0000003b36a35877 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x0000003b36a36f68 in __GI_abort () at abort.c:89
During symbol reading, debug info gives source 9 included from file at
zero line 0.
During symbol reading, debug info gives command-line macro definition with
non-zero line 19: _STDC_PREDEF_H 1.
#2 0x0000000000784a25 in rl_callback_read_char () at
src/readline/callback.c:116
#3 0x0000000000619111 in rl_callback_read_char_wrapper (client_data=0x0)
at src/gdb/event-top.c:167
#4 0x00000000006194e7 in stdin_event_handler (error=0, client_data=0x0)
at src/gdb/event-top.c:373
#5 0x00000000006180da in handle_file_event (data=...) at
src/gdb/event-loop.c:763
#6 0x00000000006175c1 in process_event () at src/gdb/event-loop.c:340
#7 0x0000000000617688 in gdb_do_one_event () at src/gdb/event-loop.c:404
#8 0x00000000006176d8 in start_event_loop () at src/gdb/event-loop.c:429
#9 0x0000000000619143 in cli_command_loop (data=0x0) at
src/gdb/event-top.c:182
#10 0x000000000060f4c8 in current_interp_command_loop () at
src/gdb/interps.c:318
#11 0x0000000000610691 in captured_command_loop (data=0x0) at
src/gdb/main.c:323
#12 0x000000000060c385 in catch_errors (func=0x610676
<captured_command_loop>, func_args=0x0, errstring=0x900241 "",
mask=RETURN_MASK_ALL)
at src/gdb/exceptions.c:237
#13 0x0000000000611b8f in captured_main (data=0x7fffffffd7b0) at
src/gdb/main.c:1151
#14 0x000000000060c385 in catch_errors (func=0x610a8e <captured_main>,
func_args=0x7fffffffd7b0, errstring=0x900241 "", mask=RETURN_MASK_ALL)
at src/gdb/exceptions.c:237
#15 0x0000000000611bb8 in gdb_main (args=0x7fffffffd7b0) at
src/gdb/main.c:1159
#16 0x000000000045ef57 in main (argc=3, argv=0x7fffffffd8b8) at
src/gdb/gdb.c:32
The fix is to make the annotation code call target_terminal_inferior
again after printing, if the inferior's settings were in effect.
While at it, when we're doing output only, instead of
target_terminal_ours, we should call target_terminal_ours_for_output.
The latter doesn't actually remove stdin from the event loop, and also
leaves SIGINT forwarded to the target.
New test included.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17472
* annotate.c (annotate_breakpoints_invalid): Use
target_terminal_our_for_output instead of target_terminal_ours.
Give back the terminal to the target.
(annotate_frames_invalid): Likewise.
gdb/testsuite/
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17472
* gdb.base/annota-input-while-running.c: New file.
* gdb.base/annota-input-while-running.exp: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=92e08c0d191908b7315603558226c7ca0bfa86a5
commit 92e08c0d191908b7315603558226c7ca0bfa86a5
Author: Pedro Alves <palves@redhat.com>
Date: Fri Oct 17 13:49:28 2014 +0100
Make common code handle target_terminal_* idempotency
I found a place that should be giving back the terminal to the target,
but only if the target was already owning it. So I need to add a
getter for who owns the terminal.
The trouble is that several places/target have their own globals to
track this state:
- inflow.c:terminal_is_ours
- remote.c:remote_async_terminal_ours_p
- linux-nat.c:async_terminal_is_ours
- go32-nat.c:terminal_is_ours
While one might think of adding a new target_ops method to query this,
conceptually, this state isn't really part of a particular target_ops.
Considering multi-target, the core shouldn't have to ask all targets
to know whether it's GDB that owns the terminal. There's only one GDB
(or rather, only one top level interpreter).
So what this comment does is add a new global that is tracked by the
core instead. A subsequent pass may later remove the other globals.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/
2014-10-17 Pedro Alves <palves@redhat.com>
* target.c (enum terminal_state): New enum.
(terminal_state): New global.
(target_terminal_init): New function.
(target_terminal_inferior): Skip if inferior already owns the
terminal.
(target_terminal_ours, target_terminal_ours_for_output): New
functions.
* target.h (target_terminal_init): Convert to function prototype.
(target_terminal_ours_for_output): Convert to function prototype
and tweak comment.
(target_terminal_ours): Convert to function prototype and tweak
comment.
* windows-nat.c (do_initial_windows_stuff): Call
target_terminal_init instead of child_terminal_init_with_pgrp.
-----------------------------------------------------------------------
Summary of changes:
gdb/ChangeLog | 42 +++++
gdb/annotate.c | 22 +++-
gdb/infcmd.c | 160 +++++++++++++-------
gdb/target.c | 64 ++++++++
gdb/target.h | 25 ++--
gdb/testsuite/ChangeLog | 18 +++
.../gdb.base/annota-input-while-running.c | 25 +++
.../gdb.base/annota-input-while-running.exp | 130 ++++++++++++++++
gdb/testsuite/gdb.base/bg-execution-repeat.c | 33 ++++
gdb/testsuite/gdb.base/bg-execution-repeat.exp | 86 +++++++++++
.../gdb.base/continue-all-already-running.c | 25 +++
.../gdb.base/continue-all-already-running.exp | 79 ++++++++++
gdb/windows-nat.c | 2 +-
13 files changed, 642 insertions(+), 69 deletions(-)
create mode 100644 gdb/testsuite/gdb.base/annota-input-while-running.c
create mode 100644 gdb/testsuite/gdb.base/annota-input-while-running.exp
create mode 100644 gdb/testsuite/gdb.base/bg-execution-repeat.c
create mode 100644 gdb/testsuite/gdb.base/bg-execution-repeat.exp
create mode 100644 gdb/testsuite/gdb.base/continue-all-already-running.c
create mode 100644 gdb/testsuite/gdb.base/continue-all-already-running.exp
--
You are receiving this mail because:
You are on the CC list for the bug.
>From gdb-prs-return-16846-listarch-gdb-prs=sources.redhat.com@sourceware.org Fri Oct 17 13:29:53 2014
Return-Path: <gdb-prs-return-16846-listarch-gdb-prs=sources.redhat.com@sourceware.org>
Delivered-To: listarch-gdb-prs@sources.redhat.com
Received: (qmail 6655 invoked by alias); 17 Oct 2014 13:29:52 -0000
Mailing-List: contact gdb-prs-help@sourceware.org; run by ezmlm
Precedence: bulk
List-Id: <gdb-prs.sourceware.org>
List-Subscribe: <mailto:gdb-prs-subscribe@sourceware.org>
List-Archive: <http://sourceware.org/ml/gdb-prs/>
List-Post: <mailto:gdb-prs@sourceware.org>
List-Help: <mailto:gdb-prs-help@sourceware.org>, <http://sourceware.org/lists.html#faqs>
Sender: gdb-prs-owner@sourceware.org
Delivered-To: mailing list gdb-prs@sourceware.org
Received: (qmail 6632 invoked by uid 48); 17 Oct 2014 13:29:52 -0000
From: "palves at redhat dot com" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug gdb/17472] with annotations, input while executing in the
foreground crashes readline/gdb
Date: Fri, 17 Oct 2014 13:29:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gdb
X-Bugzilla-Component: gdb
X-Bugzilla-Version: HEAD
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: palves at redhat dot com
X-Bugzilla-Status: ASSIGNED
X-Bugzilla-Priority: P2
X-Bugzilla-Assigned-To: palves at redhat dot com
X-Bugzilla-Target-Milestone: 7.9
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: target_milestone
Message-ID: <bug-17472-4717-1N7VgkRAg4@http.sourceware.org/bugzilla/>
In-Reply-To: <bug-17472-4717@http.sourceware.org/bugzilla/>
References: <bug-17472-4717@http.sourceware.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://sourceware.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-q4/txt/msg00089.txt.bz2
Content-length: 459
https://sourceware.org/bugzilla/show_bug.cgi?id\x17472
Pedro Alves <palves at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |7.9
--- Comment #5 from Pedro Alves <palves at redhat dot com> ---
Fixed, mainline and 7.8.1.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug cli/17300] crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
` (8 preceding siblings ...)
2014-10-17 12:47 ` cvs-commit at gcc dot gnu.org
@ 2014-10-17 13:30 ` palves at redhat dot com
2014-10-17 13:31 ` palves at redhat dot com
` (5 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: palves at redhat dot com @ 2014-10-17 13:30 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
Pedro Alves <palves at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
Target Milestone|--- |7.9
--- Comment #11 from Pedro Alves <palves at redhat dot com> ---
Fixed, mainline and 7.8.1.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug cli/17300] crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
` (9 preceding siblings ...)
2014-10-17 13:30 ` palves at redhat dot com
@ 2014-10-17 13:31 ` palves at redhat dot com
2014-10-18 11:51 ` dilyan.palauzov at aegee dot org
` (4 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: palves at redhat dot com @ 2014-10-17 13:31 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
--- Comment #12 from Pedro Alves <palves at redhat dot com> ---
See also Bug 17471.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug cli/17300] crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
` (10 preceding siblings ...)
2014-10-17 13:31 ` palves at redhat dot com
@ 2014-10-18 11:51 ` dilyan.palauzov at aegee dot org
2014-10-24 18:10 ` palves at redhat dot com
` (3 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: dilyan.palauzov at aegee dot org @ 2014-10-18 11:51 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
dilyan.palauzov at aegee dot org <dilyan.palauzov at aegee dot org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|FIXED |---
--- Comment #13 from dilyan.palauzov at aegee dot org <dilyan.palauzov at aegee dot org> ---
To my understanding, all commands which do not repeat by pressing subsequent
<RET> are mentioned as such explicitly in the documentation.
There is no point to repeat "continue -a&" on subsequent <RET> when the program
is already running.
Please clarify in the documentation, that continue -a (and interrupt -a) do not
repeat, when the program with all its threads is running by the time <RET> is
pressed.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug cli/17300] crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
` (11 preceding siblings ...)
2014-10-18 11:51 ` dilyan.palauzov at aegee dot org
@ 2014-10-24 18:10 ` palves at redhat dot com
2014-10-25 11:15 ` dilyan.palauzov at aegee dot org
` (2 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: palves at redhat dot com @ 2014-10-24 18:10 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
--- Comment #14 from Pedro Alves <palves at redhat dot com> ---
> There is no point to repeat "continue -a&" on subsequent <RET> when the
> program is already running.
The command is repeated, but given it resumes all threads that are stopped, it
has no effect if all threads are already running. It repeats in the sense that
if you have:
(gdb) continue -a&
(gdb) <RET>
(nothing happens)
* some thread stops *
(gdb) <RET>
Then this last <RET> repeats the c -a& and resumes the thread that stopped.
This is _no_ different from explicitly issuing the command rather than
just typing <RET>:
(gdb) continue -a&
(gdb) continue -a&
(nothing happens)
* some thread stops *
(gdb) continue -a&
Then this last c -a& resumes the thread that stopped.
And in turn, is different from commands that are documented to truly not
repeat, like, e.g., attach, detach, display, signal, target etc. E.g.:
(gdb) attach 1
Attaching to process 1
ptrace: Operation not permitted.
(gdb) <RET>
(gdb) <RET>
(gdb) <RET>
(gdb) <RET>
Those RET's don't really execute any command (related, I think GDB should say
something like "no command to repeat", or some such, rather than be quiet, for
truly non-repeat commands).
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug cli/17300] crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
` (12 preceding siblings ...)
2014-10-24 18:10 ` palves at redhat dot com
@ 2014-10-25 11:15 ` dilyan.palauzov at aegee dot org
2014-10-29 19:48 ` cvs-commit at gcc dot gnu.org
2014-12-25 0:46 ` cvs-commit at gcc dot gnu.org
15 siblings, 0 replies; 17+ messages in thread
From: dilyan.palauzov at aegee dot org @ 2014-10-25 11:15 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
dilyan.palauzov at aegee dot org <dilyan.palauzov at aegee dot org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|REOPENED |RESOLVED
Resolution|--- |FIXED
--- Comment #15 from dilyan.palauzov at aegee dot org <dilyan.palauzov at aegee dot org> ---
This makes sense.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug cli/17300] crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
` (13 preceding siblings ...)
2014-10-25 11:15 ` dilyan.palauzov at aegee dot org
@ 2014-10-29 19:48 ` cvs-commit at gcc dot gnu.org
2014-12-25 0:46 ` cvs-commit at gcc dot gnu.org
15 siblings, 0 replies; 17+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2014-10-29 19:48 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
--- Comment #16 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".
The annotated tag, gdb-7.8.1-release has been created
at 60cd8f8e7f38daf7d59e82b9fb3b8840a3a714c9 (tag)
tagging 21de41c04a26bb04f2e827d35fd48c991fa991b1 (commit)
replaces gdb-7.8-release
tagged by Joel Brobecker
on Wed Oct 29 12:47:08 2014 -0700
- Log -----------------------------------------------------------------
GDB 7.8.1 Release.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iEYEABECAAYFAlRRRDwACgkQku2wS/8yXPNA3gCgmaBkksiuRbHoYAudWcZYwiJ4
upIAoI2vGr/6e6CNHxIinVYQ2IJCY/4V
=wgXR
-----END PGP SIGNATURE-----
Doug Evans (3):
Fix for PR 17247: Block SIGCHLD while initializing Guile.
PR guile/17367
PR python/17364
Eli Zaretskii (1):
Avoid compiler warnings about incomplete parameter types.
GDB Administrator (92):
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Jan Kratochvil (4):
Fix incorrect placement of two Intel gdb/NEWS items
Fix 'gcore' with exited threads
Fix crash on Python frame filters with unreadable arg
Fix regression for Linux vDSO in GDB (PR gdb/17407).
Joel Brobecker (5):
Document the GDB 7.8 release in gdb/ChangeLog
Bump GDB version number to 7.8.0.DATE-cvs.
Add "frame.h" #include in gdbarch.h.
state->dr_control_mirror == 0 failed assertion in gdbserver on Windows XP
Set GDB version number to 7.8.1.
Pedro Alves (9):
testsuite: refactor spawn and wait for attach
gdb/17347 - Regression: GDB stopped on run with attached process
Aarch64: Make CPSR a 32-bit register again in the target description
Make common code handle target_terminal_* idempotency
PR gdb/17472: With annotations, input while executing in the foreground
crashes readline/GDB
PR gdb/17300: Input after "c -a" crashes readline/GDB
PR gdb/17471: Repeating a background command makes it foreground
PR python/17372 - Python hangs when displaying help()
PR 17408 - assertion failure in switch_back_to_stepped_thread
Siva Chandra (1):
Fix xmethod Python so that it works with Python3.
Yao Qi (2):
Fix build/17104
Remove workaround to libbabeltrace 1.1.0 issue
-----------------------------------------------------------------------
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug cli/17300] crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!)
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
` (14 preceding siblings ...)
2014-10-29 19:48 ` cvs-commit at gcc dot gnu.org
@ 2014-12-25 0:46 ` cvs-commit at gcc dot gnu.org
15 siblings, 0 replies; 17+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2014-12-25 0:46 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17300
--- Comment #17 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".
The annotated tag, hjl/linux/release/2.25.51.0.1 has been created
at 02458b5b7894e10794a1e1b87e4f8e36b3198b10 (tag)
tagging a0890eb04228a6b921697b1192285b57e5f46e97 (commit)
replaces hjl/linux/release/2.24.51.0.4
tagged by H.J. Lu
on Wed Dec 24 16:43:46 2014 -0800
- Log -----------------------------------------------------------------
Linux binutils 2.25.51.0.1
Ajit Kumar Agarwal (2):
Microblaze: Reject invalid target descriptions
Microblaze: Replace microblaze-expedite from pc to rpc
Alan Modra (122):
daily update
Regen gold POTFILES.in
daily update
daily update
daily update
Do away with hash table line lookup in dwarf2dbg.c
daily update
daily update
daily update
daily update
daily update
daily update
daily update
Discard zero address range eh_frame FDEs
daily update
daily update
daily update
daily update
daily update
daily update
daily update
daily update
daily update
Run eh_frame optimisation for relocatable link
daily update
sparc-aout and sparc-coff breakage
Correct fscanf char field count
Avoid undefined behaviour with signed expressions
daily update
ChangeLog typo fix
Define bfd_find_line entry of BFD_JUMP_TABLE_SYMBOLS using NAME.
Merge bfd_find_nearest_line variants
daily update
PR17488, powerpc64-linux-ld segfault
Fix 17492, ld segfault with --oformat=binary
daily update
daily update
Fix PR17493, attempted output of *GAS `reg' section* symbol
PowerPC64 ELFv1 function symbol definition vs LTO and discarded sections
daily update
daily update
daily update
Add gcc-4.9 libgomp symbols requiring --plt-thread-safe for power7
Relax ppc64_elf_tls_optimize assertion
[GOLD] Add gcc-4.9 libgomp symbols requiring --plt-thread-safe for power7
daily update
daily update
daily update
daily update
daily update
daily update
daily update
daily update
daily update
daily update
daily update
daily update
daily update
daily update
Provide stat function for spu overlay manager iovec
Regenerate spu overlay and icache manager files
Use frag_now_fix_octets in gas d10v, d30v
Don't use register keyword
daily update
Use obstack_blank_fast to shrink obstacks
Cast result of obstack_next_free
daily update
daily update
Revert bfd_get_size checks
aoutx.h tidy
tekhex buffer management and symbol types
tekhex architecure
daily update
Correct buffer overrun test
daily update
daily update
daily update
ld -r abort in _bfd_elf_write_section_eh_frame
Avoid coff OOM
coff coff
daily update
Fix x86 non-ELF build breakage
Fix z80-coff build breakage
Throw away dodgy coff line number info earlier
daily update
daily update
Default powerpc64 to --plt-thread-safe for Go
ppc476 workaround sizing
PPC gold doesn't check for overflow properly
PPC gold doesn't check for overflow properly
PowerPC64 --plt-align
[GOLD] PowerPC relaxation corner case
Retry powerpc gold stub grouping when groups prove too large
_bfd_elf_slurp_version_tables tidy
Fix build breakage on 32-bit targets with 64-bit bfd
Don't deprecate powerpc mftb insn
Sanity checks on version section
Don't output symbol version definitions for non-DT_NEEDED libs
Power4 should treat mftb as extended mfspr mnemonic
ppc64_elf_edit_opd revamp
powerpc gold, fix pr17566
powerpc gold, work around pr17670
Sort relocs output by ld -r
PowerPC gold, fix 32-bit branch address arithmetic
ChangeLog typo fix
ppc64_elf_edit_opd revamp, take 2
Don't sort ld -r relocs for mips
Don't access elf tdata in dwarf.c without first checking for an ELF bfd
Don't return DW_AT_name for function name in C++
Don't always build coffgen.o
Use autoconf check for long long in binutils
Copy relocations against protected symbols
Set bfd_error in _bfd_elf_adjust_dynamic_copy
PowerPC register numbers in DWARF
Move support code for linker script DEFINED to ldexp.c
Correct logic for "defined by object"
Don't PROVIDE over top of common symbols
Use a symbol flag bit to mark linker defined symbols
Report an error for script multiply defined symbols
Yet another DEFINED testcase
Fix generic linker symbol output when weak is overridden by strong
Don't create .eh_frame_hdr on shared lib bfd
Alexander Cherepanov (2):
Fix a snafu setting up the string table read in from a COFF file.
This patch fixes a snafu where the -D and -U short versions of the
Andreas Arnez (58):
Replace 'core_regset_sections' by iterator method
Add 'regset' parameter to 'iterate_over_regset_sections_cb'
Add multi-arch capable 'fbsd_make_corefile_notes' variant
AARCH64: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
ALPHA: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
ARM: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
FRV: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
HPPA: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
X86: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
M32R: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
M68K: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
IA64: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
M88K: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
MIPS: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
MN10300: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'.
NIOS2: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
PPC: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
SCORE: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
SH: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
SPARC: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
TILEGX: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
VAX: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
XTENSA: Migrate from 'regset_from_core_section' to
'iterate_over_regset_sections'
Drop target method 'fbsd_make_corefile_notes'
Linux targets: drop fall back to target method for 'make_corefile_notes'
Drop 'regset_from_core_section' gdbarch method
Remove non-address bits for longjmp resume breakpoint
Eliminate literal line numbers in so-impl-ld.exp
Eliminate literal line numbers in dbx.exp
Eliminate literal line numbers in call-ar-st.exp
Eliminate literal line numbers in call-rt-st.exp
Eliminate literal line numbers in ending-run.exp
Eliminate literal line numbers in foll-exec.exp
Eliminate literal line numbers in jump.exp
Eliminate literal line numbers in shlib-call.exp
Eliminate literal line numbers in mi-console.exp
'callfuncs' test case: Fixes in conditionally compiled code
Perform all tests in callfuncs.exp with and without C function prototypes
callfuncs.exp: Indent perform_all_tests()
Drop non-prototype C function header variants: solib1.c
Drop non-prototype C function header variants: 'break' test case
Drop non-prototype C function header variants: 'list' test case
Drop non-prototype C function header variants: 'sepdebug' test case
GDB testsuite: drop non-prototype C function header variants
GDB testsuite: Fix warnings with -std=gnu11
Drop remaining references to removed source lines in break1.c and ur1.c
Eliminate literal line numbers in mi-until.exp
GDB testsuite: More fixes for warnings with -std=gnu11
Use 2-byte instead of 4-byte NOP on S390 in 'bp-permanent' test case
S390: Fix 'expedite' for s390-te-linux64
execl-update-breakpoints.exp: Move whole segment instead of .text section
gdbserver: Rephrase loops in regsets_fetch/store_inferior_registers
gdbserver: Prevent stale/random values in register cache
gdbserver: Support read-only regsets in linux-low.c
S390: Fix gdbserver support for TDB
Add new GDB command "maint print user-registers"
Provide completer for "info registers"
Fix indentation of "maint print user-registers"
Andreas From (1):
Add myself as write after approval maintainer
Andreas Schwab (1):
* configure.tgt (targ_extra_obj) [aarch64*-*]: Define.
Andrew Bennett (1):
[MIPS] When calculating a relocation using an undefined weak symbol don't
check for overflow.
Andrew Burgess (9):
When relaxing, update symbols at the very end of the section.
When relaxing, update size of symbols.
Merge include/* files from GCC commit 77cab4753.
Merge include/* files from GCC commit 69a2f316d3.
Add string representation of ELF e_flags for AVR.
AVR: Only set link-relax elf flag when appropriate.
AVR/ld: Propagate link-relax elf header flag correctly.
AVR: Assembler now prepares for linker relaxation by default.
AVR: Document linker relaxation related options.
Andrew Pinski (2):
[AARCH64] Add thunderx support to gas
Add forgotten changelog entry.
Andrew Stubbs (1):
Clarify strip docs.
Anthony Green (4):
Add zex instructions for moxie port
Add zex instruction support for moxie port
Add mul.x and umul.x instructions to moxie port
Add support for moxie's mul.x and umul.x instructions
Cary Coutant (12):
Fix race condition causing assert in Eh_frame_hdr::do_sized_write().
Add PR reference to ChangeLog entry.
Fix problem where TLS common symbols are not allocated properly during
LTO.
Fix handling of relocations against TLS section symbols.
Fix error from previous patch where tosize and tovalue were redefined
Add "typename" keyword to satisfy GCC 4.2.
Fix corrupted .eh_frame section with LTO and --gc-sections.
Add file size to ELF symbol labelling start of a binary file.
Update list of debug sections for --strip-debug-xxx options.
Fix extraneous warning about executable stack.
Fix internal error in gold when -Map and --compress-debug-sections are
used
gold/
Catalin Udma (2):
Fix info mem command for 32 bits host/64 bits target
aarch64/gdbserver: fix floating point registers display
Chen Gang (3):
Fix memory overflow issue about strncat
Ensure zero termination of tic4x insn buffer
Fix windres memory leak
Daniel Colascione (1):
Warn users about mismatched PID namespaces
Denis Chertykov (5):
* avrtiny.sc: Apply avr.sc fixes.
* MAINTAINERS: Fix my email address.
* configure.ac: Add od-elf32_avr to build.
* od-elf32_avr.c: Forgot to add a new file.
* od-elf32_avr.c (elf32_avr_dump_mem_usage): Fix device initialization.
Dennis Brueni (1):
Thix fixes an obvious coding error that led to a GDB crash on AIX or
HPUX.
Dmitriy Ivanov (1):
Add support for -z global.
Don Breazeal (2):
Refactor native follow-fork.
Follow-fork message printing improvements
Doug Evans (104):
gdb.base/structs.c (main): Don't run forever.
Remove some code duplication in py-objfile.c, py-progspace.c.
fix file paths in previous commit
Fix dw2-op-out-param.S CU offset values.
Change name of file name test in py-objfile.exp.
PR python/17364
Add gdb.Objfile.progspace attribute.
New python event "clear_objfiles".
linux-nat.c (linux_nat_wait_1): Make local prev_mask non-static.
Fix some comments to say minus_one_ptid instead of PID == -1.
Remove second (nested) copy of local var child_die.
symtab.c (lookup_symbol_aux_quick): Set block_found upon success.
symtab.c: forward decl cleanup
Clean up some function comments in symtab.[ch].
Move block_found decl to symtab.h.
block.c (allocate_block): Use OBSTACK_ZALLOC instead of obstack_alloc.
* block.h (ALL_BLOCK_SYMBOLS): Fix comment.
Rename parameter "kind" to "block_index" in quick lookup functions.
symtab.c (lookup_symbol_aux_local): Fix typo in comment.
Add ability to add attributes to gdb.Objfile and gdb.Progspace objects.
valops.c: Fix some whitespace.
objfiles.h: Remove some unused macros.
xcoffread.c (process_linenos): Delete unnecessary code.
mdebugread.c (parse_procedure): Delete unnecessary forward decl.
Update description of ownership of files in include/
solib_global_lookup: Fetch arch from objfile, not target_gdbarch.
Delete TYPE_CODE_CLASS, it's just an alias of TYPE_CODE_STRUCT.
Forgotten ChangeLog entry for previous commit.
Use ALL_PRIMARY_SYMTABS instead of ALL_SYMTABS in some places.
Move lookup_block_symbol to block.c, rename to block_lookup_symbol.
New macro ALL_BLOCK_SYMBOLS_WITH_NAME.
Rename lookup_symbol_static to lookup_symbol_in_static_block,
lookup_symbol_in_block: Renamed from lookup_symbol_aux_block.
Rename some "aux" functions.
symtab.c (basic_lookup_symbol_nonlocal): Add comment.
Rename lookup_symbol_global to lookup_global_symbol.
symtab.h (lookup_global_symbol): Improve function comment.
PR 17564: Fix objfile search order for static symbols.
source.c (select_source_symtab): Rewrite to use ALL_SYMTABS.
symmisc.c: Remove trailing whitespace.
dwarf2read.c (update_enumeration_type_from_children): Avoid infinite
loop.
PR symtab/17591
expand_symtab_containing_pc: Renamed from
find_pc_sect_symtab_via_partial.
PR symtab/17559
Add copyright headers.
The result of symtab expansion is always a primary symtab.
Split up end_symtab_from_static_block into two.
Use SYMBOL_OBJFILE more.
Fix memory leak in watch_main_source_file_lossage.
SYMTAB_OBJFILE: New macro.
SYMTAB_DIRNAME: New macro.
symtab.h (SYMTAB_LINETABLE): Renamed from LINETABLE. All uses updated.
buildsym API cleanup
symtab.h (SYMTAB_BLOCKVECTOR): Renamed from BLOCKVECTOR. All uses
updated.
Split struct symtab into two: struct symtab and compunit_symtab.
psymtab.c (psymtab_search_name): Fix whitespace.
cp-namespace.c (cp_lookup_symbol_nonlocal): Fix comment.
symtab.c: Comment and whitespace improvements.
Fix dumping of function arguments.
gdb.dwarf2/dw2-op-out-param.S: Fix comment.
python/py-infthread.c: Whitespace fixes.
New python events: infcall, register/memory changed.
revert previous patch so that I can re-commit with correct author
Remove remnant of Chill support.
dwarf2read.c (peek_die_abbrev): Improve error message text.
PR symtab/17591
PR symtab/17602
Remove cplus_specific from general_symbol_info.
New python attribute gdb.Objfile.build_id.
New python method gdb.Objfile.add_separate_debug_file.
Revert: linespec.c (iterate_name_matcher): Fix arguments to
symbol_name_cmp.
New "owner" attribute for gdb.Objfile.
python/py-objfile.c (objfpy_get_owner): Increment refcount of result.
cp_lookup_symbol_imports: Make static.
cp-namespace.c (lookup_symbol_file): Move next to only caller.
cp_lookup_symbol_nonlocal: Move definition closer to its subroutines.
symtab.c (domain_name) <MODULE_DOMAIN>: Add missing case.
(lookup_global_symbol_from_objfile): Simplify.
cp-namespace.c (cp_lookup_nested_symbol): Fix comments.
New python function gdb.lookup_objfile.
Give quick_symbol_functions "methods" a consistent naming scheme.
Rename cp_is_anonymous to cp_is_in_anonymous.
value_maybe_namespace_elt: Remove unnecessary test of result != NULL.
utils.c (make_hex_string): Fix off-by-one error.
symtab.h (struct symbol_search) <symtab>: Delete, unnecessary.
cp_find_type_baseclass_by_name: Renamed from find_type_baseclass_by_name.
cp_lookup_symbol_via_imports: Renamed from cp_lookup_symbol_imports.
boards/stabs.exp: New file.
Make buildsym set-up/tear-down more consistent, and document it.
New parameter "debug symbol-lookup".
value_maybe_namespace_elt: Remove redundant call to lookup_static_symbol.
Fix file name in earlier entry.
language_lookup_primitive_type: Renamed from
language_lookup_primitive_type_by_name.
infcmd.c (jump_command): Minor simplification.
cp-namespace.c: Whitespace cleanup.
cp-namespace.c (cp_lookup_symbol_in_namespace): Simplify.
cp-namespace.c (cp_lookup_nested_symbol_1): New function.
cp-namespace.c (cp_lookup_symbol_via_imports): New arg
"search_scope_first".
cp-namespace.c (cp_lookup_symbol_via_all_imports): New function.
Replace some symbol accessor macros with functions.
Add langdef arg to la_lookup_symbol_nonlocal.
initialize_objfile_symbol: Renamed from initialize_symbol.
symtab.h (SYMBOL_DOMAIN_BITS): New macro.
Look up primitive types as symbols.
Dr Philipp Tomsich (1):
Remove the artificial limit on code alignment through the use of the
Eric Botcazou (6):
Update from upstream config repo
Add Visium support to opcodes
Add Visium support to bfd
Add Visium support to binutils
Add Visium support to gas
Add Visium support to ld
Espen Grindhaug (1):
Fixes an infinite loop in readelf parsing a corrupt binary, and other
minor corrections.
Evgeniy Dushistov (1):
Fix race condition when using --threads with linker plugins.
GDB Administrator (36):
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Automatic date update in version.in
Gary Benson (4):
Remove spurious exceptions.h inclusions
Include cleanups.h in common-defs.h
Include common-exceptions.h in common-defs.h
Do not include unnecessary files in fbsd-tdep.c
H.J. Lu (100):
Fix build for OLD_FREEBSD_ABI_LABEL
Convert mov to lea only if r_offset >= 2
X32: Add REX prefix to encode R_X86_64_GOTTPOFF
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Cast to unsigned long in range checks
Cast time value to unsigned long to print
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Fix a typo in gas/ChangeLog
Add assembler support for @gotplt
Mark R_X86_64_GOTPLT64 obsolete
Rename symbbol to symbol
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Add cast to unsigned int
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Correct x86 assembler manual
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Don't make PLT entry for R_X86_64_GOTPLT64
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Always run mpx3 and mpx4 tests in 64-bit
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Check PC-relative offset overflow in PLT entry
Run IFUNC run-time tests only if IFUNC is supported
Add ifunc-main IFUNC tests
Always load function pointer into a stack variable
Add function and function pointer tests
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Update plt-main tests for x32
Don't run pr17618 test on x32
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Add binutils-pltgot.patch
Run plt-main test with -pie
Add function and function pointer tests for i386
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Add i386 .plt.got support
Check PC-relative offset overflow in PLT entry
Optimize PC-relative offset overflow check
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Check pointer_equality_needed instead of non_got_ref
Check branch displacement overflow in x86-64 PLT entry
Assert size of elf_x86_64_{bnd|legacy}_plt2_entry
Update libtool.m4 from GCC trunk
Optimize out i386/x86-64 JUMP_SLOT relocation
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Remove binutils-pltgot.patch
Update binutils-sharable.patch for master
Display symbol version when dumping dynrelocs
Use get_symbol_version_string in BFD_JUMP_TABLE_SYMBOLS
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Remove binutils-pr16496.patch
Update ld-alpha tests for secureplt
Update mips tests with symbol version string
Add tests for PR ld/16452 and PR ld/16457
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Properly check for an out of range row index
Merge remote-tracking branch 'origin/master' into hjl/linux/master
X86-64: Allow copy relocs for building PIE
Discard space for relocs against symbols with copy relocs
Check info->executable for symbols which need copy relocs
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Reformat elf_x86_64_create_dynamic_sections
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Update binutils-sharable.patch against master
Replace copyreloc-main.c with copyreloc-main.S
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Compile pie_copyrelocs_test.cc with -fno-exceptions
-fno-asynchronous-unwind-tables
Add _bfd_elf_ifunc_get_synthetic_symtab
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Define bfd_elf32_get_synthetic_symtab for x32
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Handle weak alias for PIE with copy reloc
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Update binutils-sharable.patch against master
Compress debug sections for Linux/x86 by default
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Cast current_group_size to unsigned long
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Mention --compress-debug-sections default in NEWS
Check corrupt input
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Apply binutils-pr17729.patch
Apply binutils-pr14675.patch
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Change SometimesInlineFunction to "return i * i * 3;"
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Cast size to long to warn
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Update binutils-pr14675.patch
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Update binutils-pr14675.patch
Update binutils-lto-mixed.patch against master
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Add cast to unsigned long
Merge remote-tracking branch 'origin/master' into hjl/linux/master
Merge remote-tracking branch 'origin/hjl/linux/master' into
hjl/linux/applied
Update binutils-lto-mixed.patch for avrelf.em/ppc32elf.em
Merge remote-tracking branch 'origin/hjl/linux/master' into
hjl/linux/applied
Fix ld/emultempl/avrelf.em and ld/emultempl/ppc32elf.em
Update release note for 2.25.51.0.1
Han Shen (3):
Here we have the patch for gold aarch64 backend to support relaxation.
Misc about gold for aarch64 backend.
Fix for gold linking tlsdesc into an executable with -pie.
Hans-Peter Nilsson (10):
ld.texinfo: Clarify that sysroot affects "=" expansion.
ld.texinfo: "=" path-prefix forces sysroot in scripts not only SEARCH_DIR
lib/ld-lib.exp (check_sysroot_available): New proc.
Add sysroot-prefix ld linker tests.
If "=" is the first character in a ldscript input file, force a sysroot
prefix.
Allow unquoted = as the first character in ldscript input_list names
Implement --print-sysroot in ld.
Implement --print-sysroot in ld.
Fix ld tests with sysroot=/ and --enable-targets=all and test
--print-sysroot
Fix %lx format used with bfd_size_type mismatch in readelf.c
Iain Buclaw (3):
Sync libiberty with upstream GCC.
Remove d-support.c and use gdb_demangle for demangling D symbols.
Add dlang demangling support to c++filt.
Igor Zamyatin (1):
Add -z bndplt to generate BND prefix in PLT entries
Ilya Tocar (4):
Add clwb instruction
Add pcommit instruction
Add AVX512IFMA instructions
Add AVX512VBMI instructions
James Hogan (1):
Clean up after generated c files for MIPS DSP targets
Jan Beulich (4):
aarch64: move bogus assertion
ppc: enable msgclr and msgsnd on Power8
gas: avoid bogus warnings in false branches of conditional
aarch64: allow adding/removing just feature flags via .arch_extension
Jan Kratochvil (19):
Fix library-list.dtd -> library-list-svr4.dtd
Use gdb_test_sequence in gdb.base/save-bp.exp.
Fix "save breakpoints" for "disable $bpnum" command.
Fix "save breakpoints" for "catch" command
NEWS: Fix typo.
Reindent code (resolve_dynamic_type_internal).
Fix add-auto-load-safe-path typo.
Add add-auto-load-scripts-directory.
Accelerate lookup_symbol_aux_objfile 85x
Remove const from many struct objfile *
Unify lookup_symbol_in_objfile_symtabs
add dummy frame destructor
add infcall_mmap and gcc_target_options gdbarch methods
introduce call_function_by_hand_dummy
export dwarf2_reg_to_regnum_or_error
add linux_infcall_mmap
add s390_gcc_target_options
Fix 7.8 regression: resolve_dynamic_struct: Assertion `TYPE_NFIELDS
(type) > 0' (PR 17642)
Fix MinGW compilation
Jan-Benedict Glaw (7):
2014-11-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
Update from upstream Automake
Update `move-if-change' from gnulib
Update config.{guess,sub} from upstream config repo
Sync libiberty from GCC
Fix signedness warning
Fix date in ChangeLog entry
Jason Merrill (1):
* Makefile.in (check-gdb.%): Restore.
Jing Yu (2):
Add aarch64 to list of targets that support gold.
Give informative error message for stub-group-size
Jiong Wang (4):
[AArch64] Cortex-A53 erratum 835769 linker workaround
treate -specs as both cflags & ldflags
[AArch64] Warn on load pair to same register
[AArch64] Cortex-A53 Erratum 835769 -- sort maps
Joel Brobecker (23):
[Ada] Error adding/subtracting pointer value to/from integral.
Use strtod instead of strtold in libiberty/d-demangle.c
ARM: stricter __stack_chk_guard check during prologue analysis
Document the GDB 7.8.1 release in gdb/ChangeLog
common-defs.h: include <stdarg.h> before <stdio.h>
[gdbserver/lynx] spurious failure to write in inferior memory
varsize-limit error printing element of packed array...
[Ada] Ignore __XA types when redundant.
[Ada] gdb.ada/complete.exp failure on x86_64-windows
[Ada] XA type is not redundant if the ranges' subtypes do not match
Handling of empty Ada ranges with a negative upper bound.
Always consider infcall breakpoints as non-permanent.
gdb_realpath: Rework comment about handling on Windows.
callback.h:struct host_callback_struct compilation error on Windows
hosts.
Lift DWARF unwinder restriction in dwarf2-frame.c::dwarf2_frame_cfa
configure gdb/gnulib with --disable-largefile if largefile support
disabled.
Add ChangeLog entries missing from the previous commit.
Add missing ChangeLog entry for PR backtrace/16215.
Fix ARI warnings in gdb/compile/compile-object-load.c.
Avoid use of sprintf in gdb/utils.c:make_hex_string
Internal error trying to print uninitialized string.
Use PTRACE_SINGLESTEP_ONE when single-stepping one thread.
[Linux] Ask kernel to kill inferior when GDB terminates
Joel Sherrill (3):
s/immediatly/immediately/ in sim/sh/ChangeLog entry.
sim/igen/: Change immediatly to immediately
sim/ppc/*: Change immediatly to immediately
Jose E. Marchesi (3):
This is a series of patches that add support for the SPARC M7 cpu to
opcodes: fix several misplaced hwcap entries.
opcodes, elf: annotate instructions with HWCAP2_VIS3B.
Keith Seitz (1):
This commit causes hundreds of core file regressions in gdb:
Kito Cheng (1):
Fix SysV-style hash table when --hash-style=both.
Kwok Cheung Yeung (1):
Fix the gdb.dwarf2/dw2-dir-file-name.exp test on MIPS
Luis Machado (5):
MIPS bit field failures in gdb.base/store.exp
Fix mingw32 failures due to incorrect directory separator in pattern
Fix ARM machine state testcase failures
Skip tests that use cd for remote hosts
I caught a few mingw32-specific failures for some of the gdb.reverse
Maciej W. Rozycki (11):
Avoid software breakpoint's instruction shadow inconsistency
Also mark ELF solib trampoline minimal symbols special
MIPS: Correct MUSTBE32 interpretation in delay slot handling
MIPS: Correct heuristic prologue termination conditions
MIPS: Rewrite `add_offset_16' to match its name
gdb.dwarf2: Testsuite 64-bit pointer truncation fixes
MIPS/GAS: Correct file option settings with `.insn'
MIPS: Add support for microMIPS Linux signal trampolines
Correct invalid assumptions made by (mostly) DWARF-2 tests
MIPS: Keep the ISA bit in compressed code addresses
MIPS: Define aliases for MSYMBOL_TARGET_FLAG macros
Marcus Shawcroft (2):
[AArch64] Remove example processors from GAS.
[AArch64] Enable CRC feature in GAS for cortex-a53 and cortex-a57.
Mark Wielaard (3):
Recognize new DWARFv5 C11, C++11 and C++14 DW_LANG constants.
dwarf.c handle new DWARFv5 C11, C++11 and C++14 DW_LANG constants.
Display DW_LANG_C11 as (C11).
Markus Trippelsdorf (1):
BFD: Add support for more than one plugin in lib/bfd-plugins
Martin Galvan (1):
frame.c: Fix the check for FID_STACK_INVALID in frame_id_eq()
Matthew Fortune (12):
Fix bad @value references in MIPS documentation
Show information about unknown ASEs and extensions in .MIPS.abiflags
MIPS Documentation fixes
Fix -Wshadow warning
Update .MIPS.abiflags to support MIPS R6
Fix segfault when creating a dso with discarded .dynsym section.
Add in a JALRC alias and fix the NAL instruction.
Fix octeon3 testsuite fallout
Fix undefined weak symbol reloc tests
Fix all failing FPXX tests for tx39-elf.
Fix octeon3 tests for targets with default abi != n32
Rework the alignment check for BFD_RELOC_MIPS_18_PCREL_S3.
Max Filippov (1):
Fix trampolines search code for conditional branches
Mihail-Marian Nistor (1):
gdb/17394: cannot put breakpoint only in selected ASM file.
Naveen H.S (1):
MIPS: Add Octeon 3 support
Nick Bull (1):
New python events: inferior call, register/memory changed.
Nick Clifton (61):
This patch closes a potential security hole in applications that use
Fix a seg-fault in strings and other binutuils when parsing a corrupt PE
This fixes more seg-faults in tools like "strings" and "objdump" when
This patch fixes a flaw in the SREC parser which could cause a stack
overflow
More fixes for corrupt binaries crashing the binutils.
Updated/new translations provided by the Translations Project.
Fixes another memory corruption bug introduced by patches for PR 17512.
Fix error message strings so that they can be translated properly.
Closes another memory corruption, this time due to heap overrun.
Fixes a seg-fault in the ihex parser when it encounters a malformed ihex
file.
In response to a public outcry the strings program now defaults to using
the
oops - changelog omitted from previous delta.
Avoid allocating over-large buffers when parsing corrupt binaries.
Fix an (almost) infinite loop in the tekhex parser.
Fixes a snafu checking the size of 20-bit immedaite values.
Import updated translations supplied by the Translation Project.
More fixes for buffer overruns instigated by corrupt binaries.
Fixes for crashes running readelf.
Fix a seg-fault triggered by reading a mal-formed archive.
More fixes for memory corruption when readelf processes corrupt files.
Fix problem with linker created sections being mistakenly flagged
More fixes for processing corrupt files.
More fixes for reading corrupt ELF files.
More fixes for memory problems uncovered by file fuzzers.
Revert changes in previous deltas that introduced new failures into
Prevent archive memebers with illegal pathnames from being extracted from
an archive.
Add more fixes for inavlid memory accesses triggered by corrupt files.
More fixes for problems exposed by valgrind and the address sanitizer
Fix objcopy and strip so that they remove their temporary files even if
an error occurs.
More fixes for assertion failures and out-of-bounds reads by readelf.
More fixes for invalid memory accesses, uncovered by valgrind and binary
fuzzers.
Prevent a buffer overrun whilst displaying corrupt ARM tags.
Updated French and Ukranian translations supplied by the Translation
Project.
oops - missed the French translation.
Fix invalid memory accesses for more corrupt binary files.
Fix more memory faults uncovered by fuzzing various executables.
More fixes for readelf problems reading corrupt files.
More fixes for memory access violations whilst scanning corrupt binaries.
More fixes for invalid memory accesses triggered by corrupt binaries.
Fix a null pointer dereference when reading the debug link info from a
corrupt file.
Fix memort access problems exposed by fuzzed binaries.
More fixes for illegal memory accesses exposed by fuzzed binaries.
Fixes a seg-fault when displaying the time data for a corrupt archive.
Resolve more problems with readelf uncovered by fuzzing binary files.
Fixes for memory access violations exposed by fuzzinf various binaries.
More fixes for memory access errors triggered by attemps to examine
corrupted binaries.
Fixes a few more memory access violations exposed by fuzzed binaries.
Add checks for memory access violations exposed by fuzzed archives.
More fixes for memory access violations exposed by fuzzed binaries.
Replace calls to abort (in readelf) with informative error messages.
Fix memory access problems exposed by fuzzed binaries.
More fixes for invalid memory accesses triggered by fuzzed binaries.
More fixes for memory access violations triggered by fuzzed binaries.
Fix a few moere memory access violations.
Fix a memory access violation triggeed by a fuzzed binary.
More fixes for memory access violations exposed by fuzzed binaries.
More fixes for invalid memory accesses exposed by fuzzed binaries.
Updated translations for the gas and gprof tools.
Reformat the objdump.1 man output to avoid overlong lines.
This patch add support for cpu marvell-whitney.
Reverts an "enhancement" made in a previous delta which complained of
Oleg Endo (1):
Correct fabs and fneg insns in simulator
Patrick Palka (4):
checkpoint: print index of new checkpoint in response message
Fix the processing of Meta-key commands in TUI
Specify SA_RESTART when registering the SIGWINCH signal handler
Add myself as write-after-approval GDB maintainer
Pedro Alves (66):
infrun.c: comment/typo fixes
breakpoint.c: debug output when we skip inserting a breakpoint
infrun.c:user_visible_resume_ptid: Don't check
singlestep_breakpoints_inserted_p
Aarch64: Make CPSR a 32-bit register again in the target description
Fix features/i386/64bit-avx512.xml
features/Makefile: Add a "clean" rule.
gdb/regformats: Don't build .dat files that aren't used by GDBserver
Regenerate AVX512 target description C files
features/Makefile: Make 'make cfiles' default to generating all C files
Add read-only markers to generated gdb/regformats/ .dat files
Really fail inserting software breakpoints on read-only regions
Reduce Hg packet (select remote general thread) bouncing
PR17431: following execs with "breakpoint always-inserted on"
Fix non-stop regressions caused by "breakpoints always-inserted off"
changes
gdb.threads/manythreads.exp: clean up and add comment
infrun.c:normal_stop: Fix typo in comment
Split vDSO range lookup to a gdbarch hook
PR symtab/14466: Work around PR libc/13097 "linux-vdso.so.1"
Cache the vsyscall/vDSO range per-inferior
Delete IRIX support
Delete gdb/regformats/microblaze.dat
gdbserver/win32: Rewrite debug registers handling
Decide whether we may have removed breakpoints based on step_over_info
Rewrite non-continuable watchpoints handling
infrun.c: add for_each_just_stopped_thread
Put single-step breakpoints on the bp_location chain
Remove deprecated_insert_raw_breakpoint and friends
thread.c: cleanup breakpoint deletion
Make single-step breakpoints be per-thread
Non-stop + software single-step archs: don't force displaced-stepping for
all single-steps
Merge remote thread listing methods
Push pruning old threads down to the target
remote: get rid of all the T packets when syncing the thread list
DEC threads: Simplify updating the thread list
Fix build without libexpat
Delete Tru64 support
Make common code handle target_terminal_* idempotency
PR gdb/17472: With annotations, input while executing in the foreground
crashes readline/GDB
PR gdb/17300: Input after "c -a" crashes readline/GDB
PR gdb/17471: Repeating a background command makes it foreground
NEWS: Clarify removed targets
Remove Vax Ultrix and VAX BSD support
stepi/nexti: skip signal handler if "handle nostop" signal arrives
Workaround remote targets that report an empty list to qfThreadInfo
update bug numbers (GNATS -> Bugzilla) in a few signal related tests
gdb.base/sigstep.exp: cleanup and make it easier to extend
Test for PR gdb/17511, spurious SIGTRAP after stepping into+in signal
handler
PR gdb/12623: non-stop crashes inferior, PC adjustment and 1-byte insns
PR tui/16138, PR tui/17519, and misc failures to initialize the terminal
TUI: don't let exceptions escape while handling readline key bindings
PR tui/16138 is about failure to initialize curses resulting in GDB
Fix uninitialized value access when very first GDB command entered is
<RET>
PR python/17372 - Python hangs when displaying help()
PR 17408 - assertion failure in switch_back_to_stepped_thread
This PR shows that GDB can easily trigger an assertion here, in
garbage collect gdb/breakpoint.c:breakpoint_thread_match
Revert old nexti prologue check and eliminate in_prologue
gdb.base/sigstep.exp: xfail gdb/17511 on i?86 Linux
add a default method for gdbarch_skip_permanent_breakpoint
make "permanent breakpoints" per location and disableable
fix skipping permanent breakpoints
Garbage collect the infwait_state global
GDBserver: ctrl-c after leader has exited
GDBserver: don't resume all threads if the Hc thread disapears
GDBserver: clean up 'cont_thread' handling
handle 'iconv's that define EILSEQ to ENOENT
Petr Machata (1):
dwarf.exp: In 64-bit units, emit also abbrev offset as a 64-bit field
Philipp Tomsich (2):
[AArch64] Add xgene1.
[AArch64] Add xgene2.
Pierre Muller (3):
[RFA] Stabs: Ignore N_BNSYM/N_ENSYM entry types
Fix amd64 dwarf register number mapping (MMX register and higher)
This patch adds support for printing out the pdata section of PE objects.
Rainer Orth (1):
Fix gnu11 fallout on Solaris 10+
Richard Earnshaw (2):
[AArch64] Fix mis-detection of unpredictable load/store operations with
FP regs.
* config/tc-arm.c (rotate_left): Avoid undefined behaviour when N = 0.
Richard Henderson (1):
Set ppc COMMONPAGESIZE to 64k
Richard Sandiford (1):
bfd/
Samuel Thibault (1):
[Hurd] Fix deallocation after proc_getprocinfo call
Sandra Loosemore (7):
Refactoring/cleanup of nios2 opcodes and assembler code.
Update Nios II prologue analysis to remove detection of long-obsolete
Add mach parameter to nios2_find_opcode_hash.
Refactor Nios II GDB support to use helper functions for disassembly and
Fix Nios II GDB epilogue detection to handle multiple stack adjustments.
Fix Nios II prologue analyzer to handle multiple stack adjustments.
Remove broken nios2 assembler dwim support.
Sergio Durigan Junior (6):
PR tdep/9390: Fix typo on xstorxstormy16-tdep.c
Explicitly use language_c when evaluating a SDT probe argument
Only call {set,clear}_semaphore probe function if they are not NULL
Partial fix for PR breakpoints/10737: Make syscall info be per-arch
instead of global
Fix build breakage from previous commit
Merge dg-extract-results.{sh,py} from GCC upstream
Simon Marchi (18):
Don't prune program spaces when doing "maintenance info program-spaces"
Exit code of exited inferiors in -list-thread-groups
Small fixes to the Python API doc
tui: Fix newterm call for older ncurses
Fix test always passing in python/py-linetable.exp
Fix prints in tests for Python 3
Fix Python help() test for Python 3
Remove duplicate comment
Fix comment typo
Fix make_cleanup_dtor signature to match declaration
Restore terminal state in mi_thread_exit (PR gdb/17627)
Introduce target_is_gdbserver
Only leave dprintf inserted if it is marked as persistent (PR
breakpoints/17012)
python extended prompt: Use os.getcwd() instead of os.getcwdu()
Fix build with Python 3.4 (PR python/16784)
testsuite: expect possible pagination when starting gdb
Introduce utility function find_inferior_ptid
A few comment cleanups
Siva Chandra (8):
Non trivial return value tests.
Fix gnuv3_pass_by_reference to lookup copy c-tors with qualified args.
Add new non-trial return value tests.
Fix gnuv3_pass_by_reference to treat dynamic classes as non-trivial.
Guard a call to TYPE_TARGET_TYPE in gnuv3_pass_by_reference.
Fix evaluation of method calls under EVAL_SKIP.
Enable chained function calls in C++ expressions.
Check that thread stack temps are not already enabled before enabling
them.
Sriraman Tallam (1):
2014-09-29 Sriraman Tallam <tmsriram@google.com>
Stan Shebs (1):
Add Yao Qi as global maintainer
Steve Ellcey (1):
2014-12-05 Steve Ellcey <sellcey@mips.com>
Terry Guo (4):
2014-09-29 Terry Guo <terry.guo@arm.com>
Enable to link ARM object file that hasn't attribute section.
Support ARM Cortex-M7
Calculate ARM arch attribute after relaxation
Tom Tromey (8):
introduce ui_file_write_for_put
add gcc/gdb interface files
add some missing ops to DWARF assembler
add make_unqualified_type
add gnu_triplet_regexp gdbarch method
split dwarf2_fetch_cfa_info from dwarf2_compile_expr_to_ax
make dwarf_expr_frame_base_1 public
the "compile" command
Tristan Gingold (4):
Add NEWS markers for 2.25.
src-release.sh: configure using --target.
Bump bfd version.
Darwin: sanitize %gs and %fs values.
Ulrich Weigand (4):
Work around GCC bug 63748
Remove (dead-code) native core file sniffers on Linux targets
Use core regset iterators on GNU Hurd
Use core regset iterators on Sparc Solaris
Victor Kamensky (4):
ARM: plt_size functions need to read instructions in right byte order
ARM: extract_arm_insn function need to read instrs correctly in be8 case
ARM: arm_breakpoint should be little endian form in case for arm BE8
read_pieced_value do big endian processing only in case of valid
gdb_regnum
Will Newton (3):
include/elf/aarch64.h: Add reloc numbers from ABI release 1.0
ld/testsuite/ld-unique: Fix running unique tests on ARM
bfd/elf-attrs.c: Fix possible infinite loop parsing attributes
Yao Qi (66):
Fix typo in thumb_in_function_epilogue_p
Skip dlopen-libpthread.exp in cross testing
Error in build_executable_own_libs for non-native target
Remove unused local variable
No longer pull thread list explicitly
Clean up server-kill.exp
Get GDBserver pid on remote target
Enable qTStatus packet in case it is disabled
Use mi_varobj_update in mi-var-child.exp and mi2-var-child.exp
Fix fail in mi-var-child.exp and mi-var-display.exp
Clean up gdb.python/ tests
Fix file name matching on remote host.
Fix py-parameter.exp for remote host
Don't check noargs in remotetimeout.exp
Don't check target_info exists noargs in commands.exp
Copy xml files to host
Skip testing argv[0] on target argv[0] isn't available
Don't remove files copied to host
Rename py-objfile-script-gdb.py.in to py-objfile-script-gdb.py
Fix trace file fails on powerpc64
Fix skipping stack protector on arm
Close the file in fileio.exp test
Prepare directory in case test_system fails
Don't replace '\' with '\\' in before_prompt_hook
Match the working directory on remote host
Add missing changelog entries
New proc _handle_attribute
DW attribute macro MACRO_AT_func and MACRO_AT_range
Get start and end address of main in dwz.exp
Use Dwarf::assemble in implptr-optimized-out.exp
Fix implptr-optimized-out.exp fail
Fix dw2-ifort-parameter.exp fail with clang
Add missing parenthesis
Don't set CC in config/i386/go32.mh
Make IMPORTED_GNULIB_MODULES in alphabetical order
Import alloca explicitly
Include alloca.h unconditionally
Import memchr explicitly
Import wchar and wctype-h explicitly
Include wchar.h and wctype.h unconditionally
Import errno explicitly
[arm] Fix fails in dw2-compdir-oldgcc.exp
Use MACRO_AT_func in entry-values.exp
Refine read_string
Match library name prefixed with sysroot
Fix date in changelog
Import readlink
Use readlink unconditionally
Import lstat
Use lstat unconditionally
Import canonicalize-lgpl
Use canonicalize_file_name unconditionally
Import rename module
[arm] compute framereg and framesize when needed
Don't enable gdbtk in testsuite
Use standard_testfile in i386-bp_permanent.exp
Fix parallel testing issues in gdb.guile tests
Revert: Don't enable gdbtk in testsuite
Don't scan prologue past epilogue
Improve arm_skip_prologue by using arm_analyze_prologue
Replace ARG_MAX with ARG_LAST
Move NEWS entries to the right section
Remove h8300_print_float_info
Refactor gdbarch method print_float_info
MIPS: Provide FPU info and decode FCSR in `info float'
MIPS SDE OS ABI support
-----------------------------------------------------------------------
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2014-12-25 0:46 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-22 4:11 [Bug cli/17300] New: crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!) dilyan.palauzov at aegee dot org
2014-10-05 14:13 ` [Bug cli/17300] " jan.kratochvil at redhat dot com
2014-10-06 13:10 ` palves at redhat dot com
2014-10-06 13:12 ` palves at redhat dot com
2014-10-06 13:22 ` palves at redhat dot com
2014-10-07 11:32 ` dilyan.palauzov at aegee dot org
2014-10-07 15:37 ` palves at redhat dot com
2014-10-07 15:43 ` palves at redhat dot com
2014-10-09 15:51 ` palves at redhat dot com
2014-10-17 12:47 ` cvs-commit at gcc dot gnu.org
2014-10-17 13:30 ` palves at redhat dot com
2014-10-17 13:31 ` palves at redhat dot com
2014-10-18 11:51 ` dilyan.palauzov at aegee dot org
2014-10-24 18:10 ` palves at redhat dot com
2014-10-25 11:15 ` dilyan.palauzov at aegee dot org
2014-10-29 19:48 ` cvs-commit at gcc dot gnu.org
2014-12-25 0:46 ` cvs-commit at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).