public inbox for gdb-testers@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb/gdb-7.12-branch] Fix PR gdb/20295: GDB segfaults printing bitfield member of optimized out value
@ 2016-08-09 15:04 sergiodj+buildbot
  2016-08-09 14:34 ` Failures on Fedora-x86_64-native-gdbserver-m32, branch gdb-7.12-branch sergiodj+buildbot
                   ` (18 more replies)
  0 siblings, 19 replies; 37+ messages in thread
From: sergiodj+buildbot @ 2016-08-09 15:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT def1145e5b736f7b50179a967d83211251153692 ***

Author: Pedro Alves <palves@redhat.com>
Branch: gdb-7.12-branch
Commit: def1145e5b736f7b50179a967d83211251153692

Fix PR gdb/20295: GDB segfaults printing bitfield member of optimized out value

With something like:

  struct A { int bitfield:4; } var;

If 'var' ends up wholly-optimized out, printing 'var.bitfield' crashes
gdb here:

 (top-gdb) bt
 #0  0x000000000058b89f in extract_unsigned_integer (addr=0x2 <error: Cannot access memory at address 0x2>, len=2, byte_order=BFD_ENDIAN_LITTLE)
     at /home/pedro/gdb/mygit/src/gdb/findvar.c:109
 #1  0x00000000005a187a in unpack_bits_as_long (field_type=0x16cff70, valaddr=0x0, bitpos=16, bitsize=12) at /home/pedro/gdb/mygit/src/gdb/value.c:3347
 #2  0x00000000005a1b9d in unpack_value_bitfield (dest_val=0x1b5d9d0, bitpos=16, bitsize=12, valaddr=0x0, embedded_offset=0, val=0x1b5d8d0)
     at /home/pedro/gdb/mygit/src/gdb/value.c:3441
 #3  0x00000000005a2a5f in value_fetch_lazy (val=0x1b5d9d0) at /home/pedro/gdb/mygit/src/gdb/value.c:3958
 #4  0x00000000005a10a7 in value_primitive_field (arg1=0x1b5d8d0, offset=0, fieldno=0, arg_type=0x16d04c0) at /home/pedro/gdb/mygit/src/gdb/value.c:3161
 #5  0x00000000005b01e5 in do_search_struct_field (name=0x1727c60 "bitfield", arg1=0x1b5d8d0, offset=0, type=0x16d04c0, looking_for_baseclass=0, result_ptr=0x7fffffffcaf8,
 [...]

unpack_value_bitfield is already optimized-out/unavailable -aware:

   (...) VALADDR points to the contents of VAL.  If the VAL's contents
   required to extract the bitfield from are unavailable/optimized
   out, DEST_VAL is correspondingly marked unavailable/optimized out.

however, it is not considering the case of the value having no
contents buffer at all, as can happen through
allocate_optimized_out_value.

gdb/ChangeLog:
2016-08-09  Pedro Alves  <palves@redhat.com>

	* value.c (unpack_value_bitfield): Skip unpacking if the parent
	has no contents buffer to begin with.

gdb/testsuite/ChangeLog:
2016-08-09  Pedro Alves  <palves@redhat.com>

	* gdb.dwarf2/bitfield-parent-optimized-out.exp: New file.


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [binutils-gdb/gdb-7.12-branch] Throw SJ/LJ exception on error in disassembly
@ 2017-01-20 13:17 sergiodj+buildbot
  2017-01-22 12:21 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
  0 siblings, 1 reply; 37+ messages in thread
From: sergiodj+buildbot @ 2017-01-20 13:17 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT e2285602341fff057a9b4687b465a9d9cde1303f ***

Author: Yao Qi <yao.qi@linaro.org>
Branch: gdb-7.12-branch
Commit: e2285602341fff057a9b4687b465a9d9cde1303f

Throw SJ/LJ exception on error in disassembly

PR 20939 reports that GDB will abort on memory error in disassembly,

(gdb) disassemble 0x0,+4
Dump of assembler code from 0x0 to 0x4:
terminate called after throwing an instance of 'gdb_exception_RETURN_MASK_ERROR'
   0x0000000000000000:	Aborted

(gdb) guile (print (arch-disassemble arch 0 #:size 4))^M
terminate called after throwing an instance of 'gdb_exception_RETURN_MASK_ERROR'^M
ERROR: Process no longer exists

This patch fixes PR 20939 by catching C++ exception, throwing SJ/LJ
exception in the call back passed to C functions of opcodes, and
catching SJ/LJ exception in gdb, and throw exception.

The patch follows this commit

 89525768cd086a0798a504c81fdf7ebcd4c904e1
 Propagate GDB/C++ exceptions across readline using sj/lj-based TRY/CATCH

rather than "backport" the fix to this PR I posted for mainline
https://sourceware.org/ml/gdb-patches/2017-01/msg00288.html because the
fix for mainline includes 1) some changes to opcodes, 2) some refactors
in C++.  All of them are risky to backport to 7.12 branch.

With this patch applied to 7.12 branch, GDB doesn't abort on memory error
in disassembly.  It fixes some test failures in gdb.guile/scm-disasm.exp
and gdb.python/py-arch.exp on aarch64-linux.

-ERROR: Process no longer exists
-UNRESOLVED: gdb.guile/scm-disasm.exp: test bad memory access
+PASS: gdb.guile/scm-disasm.exp: test bad memory access

-ERROR: Process no longer exists
-UNRESOLVED: gdb.python/py-arch.exp: test bad memory access
+PASS: gdb.python/py-arch.exp: test bad memory access

I'll add the scm-disasm test to master later.

gdb:

2017-01-20  Yao Qi  <yao.qi@linaro.org>

	PR gdb/20939
	* disasm.c (dis_asm_memory_error): Catch the error and rethrow
	it as a SJ/LJ exception.  Add GDB_NOEXCEPT.
	(disasm_print_insn_noexcept): New function.
	(disasm_print_insn): New function.
	(gdb_pretty_print_insn): Call disasm_print_insn instead of
	gdbarch_print_insn.
	(gdb_print_insn): Likewise.
	(gdb_buffered_insn_length): Likewise.
	* event-top.c (GDB_NOEXCEPT): Move it to ...
	* exceptions.h (GDB_NOEXCEPT): ... here.
	* guile/scm-disasm.c (gdbscm_disasm_memory_error): Remove.
	(gdbscm_print_insn_from_port): Don't set di.memory_errro_func.
	Call disasm_print_insn rather than gdbarch_print_insn.


^ permalink raw reply	[flat|nested] 37+ messages in thread
[parent not found: <@gdb-build>]
* [binutils-gdb/gdb-7.12-branch] gdb: Fix C and C++03 builds
@ 2016-12-20 20:16 sergiodj+buildbot
  2016-12-25  5:18 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
  0 siblings, 1 reply; 37+ messages in thread
From: sergiodj+buildbot @ 2016-12-20 20:16 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9bfe0298332782a9c082fb475bdf8eeeef8cf45e ***

Author: Pedro Alves <palves@redhat.com>
Branch: gdb-7.12-branch
Commit: 9bfe0298332782a9c082fb475bdf8eeeef8cf45e

gdb: Fix C and C++03 builds

The readline/sjlj-exceptions fix added an unconditional use of
noexcept, but that's only valid C++11, and 7.12 must build with C and
C++03 too.  Fix this by adding a GDB_EXCEPT macro that compiles away
to nothing in C, and to throw() in C++03, which I've confirmed fixes
the original issue just the same as noexcept, with GCC 7 + -std=gnu+03
+ sjlj-exceptions.

gdb/ChangeLog:
2016-12-20  Pedro Alves  <palves@redhat.com>

	PR gdb/20977
	* event-top.c (GDB_NOEXCEPT): Define.
	(gdb_rl_callback_read_char_wrapper_noexcept): Use GDB_NOEXCEPT
	instead of noexcept and use (void) instead of ().
	(gdb_rl_callback_handler): Use GDB_NOEXCEPT instead of noexcept.


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [binutils-gdb/gdb-7.12-branch] sim: mips: fix dv-tx3904cpu build error
@ 2016-11-11  7:48 sergiodj+buildbot
  2016-11-23  4:29 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
  0 siblings, 1 reply; 37+ messages in thread
From: sergiodj+buildbot @ 2016-11-11  7:48 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT cd48ce152d6710af146ffc7897a82586513fc534 ***

Author: Mike Frysinger <vapier@gentoo.org>
Branch: gdb-7.12-branch
Commit: cd48ce152d6710af146ffc7897a82586513fc534

sim: mips: fix dv-tx3904cpu build error

When building for mipstx39-rtems4.12 targets, some funcs use SD and CPU
implicitly.  Restore the defines for these to the local sd and cpu vars.

This was broken by the clean up in commit d47f5b30d8481272e9480118bdcb.

Reported-by: Joel Sherrill <joel.sherrill@oarcorp.com>


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [binutils-gdb/gdb-7.12-branch] [GDBserver] Fix conversion warning
@ 2016-10-25  3:26 sergiodj+buildbot
  2016-10-25 14:17 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
  0 siblings, 1 reply; 37+ messages in thread
From: sergiodj+buildbot @ 2016-10-25  3:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT a945860b6cb4f8a26343ac5dcb0b42fe5fb2f68a ***

Author: Yao Qi <yao.qi@linaro.org>
Branch: gdb-7.12-branch
Commit: a945860b6cb4f8a26343ac5dcb0b42fe5fb2f68a

[GDBserver] Fix conversion warning

I got the following warning if I build GDBserver for aarch64_be-linux-gnu,

git/gdb/gdbserver/linux-aarch64-low.c:1539:39: error: invalid conversion from 'void*' to 'uint32_t* {aka unsigned int*}' [-fpermissive]
   uint32_t *le_buf = xmalloc (byte_len);
                                       ^
The patch is to fix the warning.

gdb/gdbserver:

2016-10-24  Yao Qi  <yao.qi@linaro.org>

	PR server/20733
	* linux-aarch64-low.c (append_insns): Cast the return value to
	'uint32_t *'.


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [binutils-gdb/gdb-7.12-branch] Include strings.h where available
@ 2016-10-14  7:58 sergiodj+buildbot
  2016-10-14 20:37 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
  0 siblings, 1 reply; 37+ messages in thread
From: sergiodj+buildbot @ 2016-10-14  7:58 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9e7fe25aebc4fe4a2c1af15447b44f50c3c97b2f ***

Author: Eli Zaretskii <eliz@gnu.org>
Branch: gdb-7.12-branch
Commit: 9e7fe25aebc4fe4a2c1af15447b44f50c3c97b2f

Include strings.h where available

gdb/ChangeLog

2016-10-14  Eli Zaretskii  <eliz@gnu.org>

	* common/common-defs.h [HAVE_STRINGS_H]: Include strings.h if
	available, to get prototypes of 'strcasecmp' and 'strncasecmp'.

(cherry picked from commit 8ffc1bb12a22e548835c9291871ad0eb68b7f6f0)


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [binutils-gdb/gdb-7.12-branch] [AArch64] Track FP registers in prologue analyzer
@ 2016-10-12 12:26 sergiodj+buildbot
  2016-10-12 13:07 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
  0 siblings, 1 reply; 37+ messages in thread
From: sergiodj+buildbot @ 2016-10-12 12:26 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 8268cfa384409770cd6988e54b386ae286c0f3d1 ***

Author: Yao Qi <yao.qi@linaro.org>
Branch: gdb-7.12-branch
Commit: 8268cfa384409770cd6988e54b386ae286c0f3d1

[AArch64] Track FP registers in prologue analyzer

We don't track FP registers in aarch64 prologue analyzer, so this causes
an internal error when FP registers are saved by "stp" instruction in
prologue (stp	d8, d9, [sp,#128]),

 tbreak _Unwind_RaiseException^M
 aarch64-tdep.c:335: internal-error: CORE_ADDR aarch64_analyze_prologue(gdbarch*, CORE_ADDR, CORE_ADDR, aarch64_prologue_cache*): Assertion `inst.operands[0].type == AARCH64_OPND_Rt' failed.^M
 A problem internal to GDB has been detected,

This patch teaches GDB to track FP registers (D registers) in prologue
analyzer.

gdb:

2016-10-12  Yao Qi  <yao.qi@linaro.org>

	PR tdep/20682
	* aarch64-tdep.c: Replace 32 with AARCH64_D_REGISTER_COUNT.
	(aarch64_analyze_prologue): Extend array 'regs' for D registers.
	Assert that operand 0 and 1 can be X or D registers.  Update
	register number for D registers.  Update registers in frame
	cache.
	* aarch64-tdep.h (AARCH64_D_REGISTER_COUNT): New macro.


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [binutils-gdb/gdb-7.12-branch] Bump GDB version number to 7.12.0.DATE-git.
@ 2016-10-07 18:04 sergiodj+buildbot
  2016-10-09  3:04 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
  0 siblings, 1 reply; 37+ messages in thread
From: sergiodj+buildbot @ 2016-10-07 18:04 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 856c9a7506cb86bedeb1402f03266b5b6fb2c431 ***

Author: Joel Brobecker <brobecker@adacore.com>
Branch: gdb-7.12-branch
Commit: 856c9a7506cb86bedeb1402f03266b5b6fb2c431

Bump GDB version number to 7.12.0.DATE-git.

gdb/ChangeLog:

	* version.in: Set GDB version number to 7.12.0.DATE-git.


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [binutils-gdb/gdb-7.12-branch] Set GDB version number to 7.12.
@ 2016-10-07 17:29 sergiodj+buildbot
  2016-10-09  1:43 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
  0 siblings, 1 reply; 37+ messages in thread
From: sergiodj+buildbot @ 2016-10-07 17:29 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 013fd7c2f84387f218364f6cc95e16708dfba28e ***

Author: Joel Brobecker <brobecker@adacore.com>
Branch: gdb-7.12-branch
Commit: 013fd7c2f84387f218364f6cc95e16708dfba28e

Set GDB version number to 7.12.

gdb/ChangeLog:

	* version.in: Set GDB version number to 7.12.


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [binutils-gdb/gdb-7.12-branch] Introduce make_cleanup_restore_current_ui
@ 2016-09-07  2:09 sergiodj+buildbot
  2016-09-07 22:29 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
  0 siblings, 1 reply; 37+ messages in thread
From: sergiodj+buildbot @ 2016-09-07  2:09 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 751b0f7dcfee83f60c1224790b9665c92be50fd8 ***

Author: Pedro Alves <palves@redhat.com>
Branch: gdb-7.12-branch
Commit: 751b0f7dcfee83f60c1224790b9665c92be50fd8

Introduce make_cleanup_restore_current_ui

Just a tidy, no functional changes.

gdb/ChangeLog:
2016-09-06  Pedro Alves  <palves@redhat.com>

	* event-top.c (restore_ui_cleanup): Now static.
	(make_cleanup_restore_current_ui): New function.
	(switch_thru_all_uis_init): Use it.
	* infcall.c (call_thread_fsm_should_stop): Use it.
	* infrun.c (fetch_inferior_event): Use it.
	* top.c (new_ui_command): Use it.
	* top.h (restore_ui_cleanup): Delete declaration.
	(make_cleanup_restore_current_ui): New declaration.


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [binutils-gdb/gdb-7.12-branch] Quiet ARI gettext checks
@ 2016-08-10 19:27 sergiodj+buildbot
  2016-08-10 19:25 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
  0 siblings, 1 reply; 37+ messages in thread
From: sergiodj+buildbot @ 2016-08-10 19:27 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 9be00a778d646d92b7940d74425b58d93cb73d0d ***

Author: Pedro Alves <palves@redhat.com>
Branch: gdb-7.12-branch
Commit: 9be00a778d646d92b7940d74425b58d93cb73d0d

Quiet ARI gettext checks

The ARI complains about this new file:

 common/signals-state-save-restore.c:46: warning: gettext: All messages should be marked up with _.
 common/signals-state-save-restore.c:59: warning: gettext: All messages should be marked up with _.
 common/signals-state-save-restore.c:87: warning: gettext: All messages should be marked up with _.
 common/signals-state-save-restore.c:92: warning: gettext: All messages should be marked up with _.

Since these are untranslatable strings, use () instead of _().

gdb/ChangeLog:
2016-08-10  Pedro Alves  <palves@redhat.com>

	* common/signals-state-save-restore.c
	(save_original_signals_state, restore_original_signals_state):
	Wrap perror_with_name arguments with '()'.


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [binutils-gdb/gdb-7.12-branch] Fix PR gdb/20418 - Problems with synchronous commands and new-ui
@ 2016-08-10  4:56 sergiodj+buildbot
  2016-08-10 16:13 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
  0 siblings, 1 reply; 37+ messages in thread
From: sergiodj+buildbot @ 2016-08-10  4:56 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT b24bdfa398beba87b48fffeb3b1f9bcfe7bf924d ***

Author: Pedro Alves <palves@redhat.com>
Branch: gdb-7.12-branch
Commit: b24bdfa398beba87b48fffeb3b1f9bcfe7bf924d

Fix PR gdb/20418 - Problems with synchronous commands and new-ui

When executing commands on a secondary UI running the MI interpreter,
some commands that should be synchronous are not.  MI incorrectly
continues processing input right after the synchronous command is
sent, before the target stops.

The problem happens when we emit MI async events (=library-loaded,
etc.), and we go about restoring the previous terminal state, we end
up calling target_terminal_ours, which incorrectly always installs the
current UI's input_fd in the event loop...  That is, code like this:

   old_chain = make_cleanup_restore_target_terminal ();
   target_terminal_ours_for_output ();

   fprintf_unfiltered (mi->event_channel, "library-loaded");

...

   do_cleanups (old_chain);

The fix is to move the add_file_handler/delete_file_handler calls out
of target_terminal_$foo, making these completely no-ops unless called
with the main UI as current UI.

gdb/ChangeLog:
2016-08-09  Pedro Alves  <palves@redhat.com>

	PR gdb/20418
	* event-top.c (ui_register_input_event_handler)
	(ui_unregister_input_event_handler): New functions.
	(async_enable_stdin): Register input in the event loop.
	(async_disable_stdin): Unregister input from the event loop.
	(gdb_setup_readline): Register input in the event loop.
	* infrun.c (check_curr_ui_sync_execution_done): Register input in
	the event loop.
	* target.c (target_terminal_inferior): Don't unregister input from
	the event loop.
	(target_terminal_ours): Don't register input in the event loop.
	* target.h (target_terminal_inferior)
	(target_terminal_ours_for_output, target_terminal_ours): Update
	comments.
	* top.h (ui_register_input_event_handler)
	(ui_unregister_input_event_handler): New declarations.
	* utils.c (ui_unregister_input_event_handler_cleanup)
	(prepare_to_handle_input): New functions.
	(defaulted_query, prompt_for_continue): Use
	prepare_to_handle_input.

gdb/testsuite/ChangeLog:
2016-08-09  Pedro Alves  <palves@redhat.com>
	    Simon Marchi  <simon.marchi@ericsson.com>

	PR gdb/20418
	* gdb.mi/new-ui-mi-sync.c, gdb.mi/new-ui-mi-sync.exp: New files.
	* lib/mi-support.exp (mi_expect_interrupt): Remove anchors.


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [binutils-gdb/gdb-7.12-branch] Fix PR mi/20431 - Missing MI prompts after sync execution MI command (-exec-continue, etc.) errors
@ 2016-08-10  2:14 sergiodj+buildbot
  2016-08-10 15:24 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
  0 siblings, 1 reply; 37+ messages in thread
From: sergiodj+buildbot @ 2016-08-10  2:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4d38db46f6f6480ee33844164383ce40e5fc2440 ***

Author: Pedro Alves <palves@redhat.com>
Branch: gdb-7.12-branch
Commit: 4d38db46f6f6480ee33844164383ce40e5fc2440

Fix PR mi/20431 - Missing MI prompts after sync execution MI command (-exec-continue, etc.) errors

gdb 7.11 introduced an MI regression: a failing MI sync execution
command misses printing the MI prompt, and then all subsequent command
miss it too:

 $ gdb-7.11.1 -i=mi
 [...]
 p 1
 &"p 1\n"
 ~"$1 = 1"
 ~"\n"
 ^done
 (gdb)                                        <<< prompted ok
 -exec-continue
 ^error,msg="The program is not being run."   <<< missing prompt after this
 print 1
 &"print 1\n"
 ~"$2 = 1"
 ~"\n"
 ^done                                        <<< missing prompt after this


gdb 7.10.1 behaved correctly, even with "set mi-async on":

 -exec-continue
 ^error,msg="The program is not being run."
 (gdb)                                        <<< prompted ok

etc.

Bisecting points at:

  commit 0b333c5e7d6c
  Author: Pedro Alves <palves@redhat.com>
  Date:   Wed Sep 9 18:23:23 2015 +0100

      Merge async and sync code paths some more
  [...]

The problem is that when an exception is thrown, we leave the prompt
state set to PROMPT_BLOCKED, and then mi_execute_command_input_handler
doesn't print the prompt.  It used to work because before that patch,
we happened to skip disabling stdin if the current target didn't do
async (which it never does before execution).

I was surprised to find that this bug isn't caught by the testsuite,
so I made a thorough test that tests all combinations of pairs of:

 - a failing synchronous execution command
 - a failing non-execution command
 - a non-failing command

gdb/ChangeLog:
2016-08-09  Pedro Alves  <palves@redhat.com>

	PR mi/20431
	* mi/mi-main.c (mi_execute_command): Enable input and set prompt
	state to PROMPT_NEEDED.

gdb/testsuite/ChangeLog:
2016-08-09  Pedro Alves  <palves@redhat.com>

	PR mi/20431
	* gdb.mi/mi-cmd-error.exp: New file.


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [binutils-gdb/gdb-7.12-branch] Fix PR gdb/18653: gdb disturbs inferior's inherited signal dispositions
@ 2016-08-09 22:55 sergiodj+buildbot
  2016-08-10  0:06 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
  0 siblings, 1 reply; 37+ messages in thread
From: sergiodj+buildbot @ 2016-08-09 22:55 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 35fcb4fc81e51295d14125785765e0ea3e132cd9 ***

Author: Pedro Alves <palves@redhat.com>
Branch: gdb-7.12-branch
Commit: 35fcb4fc81e51295d14125785765e0ea3e132cd9

Fix PR gdb/18653: gdb disturbs inferior's inherited signal dispositions

gdb's (or gdbserver's) own signal handling should not interfere with
the signal dispositions their spawned children inherit.  However, it
currently does.  For example, some paths in gdb cause SIGPIPE to be
set to SIG_IGN, and as consequence, the child starts with SIGPIPE to
set to SIG_IGN too, even though gdb was started with SIGPIPE set to
SIG_DFL.

This is because the exec family of functions does not reset the signal
disposition of signals that are set to SIG_IGN:

  http://pubs.opengroup.org/onlinepubs/7908799/xsh/execve.html

  Signals set to the default action (SIG_DFL) in the calling process
  image are set to the default action in the new process
  image. Signals set to be ignored (SIG_IGN) by the calling process
  image are set to be ignored by the new process image. Signals set to
  be caught by the calling process image are set to the default action
  in the new process image (see <signal.h>).

And neither does it reset signal masks or flags.

In order to be transparent, when spawning new child processes to debug
(with "run", etc.), reset signal actions and mask back to what was
originally inherited from gdb/gdbserver's parent, just before execing
the target program to debug.

gdb/ChangeLog:
2016-08-09  Pedro Alves  <palves@redhat.com>

	PR gdb/18653
	* Makefile.in (SFILES): Add
	common/signals-state-save-restore.c.
	(HFILES_NO_SRCDIR): Add common/signals-state-save-restore.h.
	(COMMON_OBS): Add signals-state-save-restore.o.
	(signals-state-save-restore.o): New rule.
	* configure: Regenerate.
	* fork-child.c: Include "signals-state-save-restore.h".
	(fork_inferior): Call restore_original_signals_state.
	* main.c: Include "signals-state-save-restore.h".
	(captured_main): Call save_original_signals_state.
	* common/common.m4: Add sigaction to AC_CHECK_FUNCS checks.
	* common/signals-state-save-restore.c: New file.
	* common/signals-state-save-restore.h: New file.

gdb/gdbserver/ChangeLog:
2016-08-09  Pedro Alves  <palves@redhat.com>

	PR gdb/18653
	* Makefile.in (OBS): Add signals-state-save-restore.o.
	(signals-state-save-restore.o): New rule.
	* config.in: Regenerate.
	* configure: Regenerate.
	* linux-low.c: Include "signals-state-save-restore.h".
	(linux_create_inferior): Call
	restore_original_signals_state.
	* server.c: Include "dispositions-save-restore.h".
	(captured_main): Call save_original_signals_state.

gdb/testsuite/ChangeLog:
2016-08-09  Pedro Alves  <palves@redhat.com>

	PR gdb/18653
	* gdb.base/signals-state-child.c: New file.
	* gdb.base/signals-state-child.exp: New file.
	* gdb.gdb/selftest.exp (do_steps_and_nexts): Add new pattern.


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [binutils-gdb/gdb-7.12-branch] Synchronize libiberty sources with FSF GCC mainline version.
@ 2016-08-09 16:53 sergiodj+buildbot
  2016-08-09 21:02 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
  0 siblings, 1 reply; 37+ messages in thread
From: sergiodj+buildbot @ 2016-08-09 16:53 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 1b6ec8ead3bce335087d6a2a6dc92c3d80d57a98 ***

Author: Nick Clifton <nickc@redhat.com>
Branch: gdb-7.12-branch
Commit: 1b6ec8ead3bce335087d6a2a6dc92c3d80d57a98

Synchronize libiberty sources with FSF GCC mainline version.

include	* libiberty.h (MAX_ALLOCA_SIZE): New macro.

libiberty * make-relative-prefix.c (make_relative_prefix_1): Fall back to
	malloc if alloca argument is greater than MAX_ALLOCA_SIZE.

	* cp-demangle.c (cplus_demangle_operators): Add f[lrLR].
	(d_expression_1): Handle them.
	(d_maybe_print_fold_expression): New.
	(d_print_comp_inner): Use it.
	(d_index_template_argument): Handle negative index.

	* cp-demangle.c (cplus_demangle_operators): Add sP and sZ.
	(d_print_comp_inner): Handle them.
	(d_template_args_1): Split out from d_template_args.
	(d_args_length): New.

	PR c++/70926
	* cplus-dem.c: Handle large values and overflow when demangling
	length variables.
	(demangle_template_value_parm): Read only until end of mangled string.
	(do_hpacc_template_literal): Likewise.
	(do_type): Handle overflow when demangling array indices.

	* cp-demangle.c (cplus_demangle_print_callback): Avoid zero-length
	  VLAs.

	PR c++/70498
	* cp-demangle.c (d_expression_1): Formatting fix.

	* cplus-dem.c (enum type_kind_t): Add tk_rvalue_reference
	constant.
	(demangle_template_value_parm): Handle tk_rvalue_reference
	type kind.
	(do_type): Support 'O' type id (rvalue references).

	* testsuite/demangle-expected: Add tests.

	PR c++/70498
	* cp-demangle.c: Parse numbers as integer instead of long to avoid
	overflow after sanity checks. Include <limits.h> if available.
	(INT_MAX): Define if necessary.
	(d_make_template_param): Takes integer argument instead of long.
	(d_make_function_param): Likewise.
	(d_append_num): Likewise.
	(d_identifier): Likewise.
	(d_number): Parse as and return integer.
	(d_compact_number): Handle overflow.
	(d_source_name): Change variable type to integer for parsed number.
	(d_java_resource): Likewise.
	(d_special_name): Likewise.
	(d_discriminator): Likewise.
	(d_unnamed_type): Likewise.
	* testsuite/demangle-expected: Add regression test cases.

	* configure: Remove SH5 support.

	PR c++/69687
	* cplus-dem.c: Include <limits.h> if available.
	(INT_MAX): Define if necessary.
	(remember_type, remember_Ktype, register_Btype, string_need):
	Abort if we detect cases where we the size of the allocation would
	overflow.

	PR c++/70492
	* cplus-dem.c (gnu_special): Handle case where consume_count returns
	-1.

	PR c++/67394
	PR c++/70481
	* cplus-dem.c (squangle_mop_up): Zero bsize/ksize after freeing
	btypevec/ktypevec.
	* testsuite/demangle-expected: Add coverage tests.


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [binutils-gdb/gdb-7.12-branch] Bump GDB version number to 7.11.90.DATE-git.
@ 2016-08-01 19:25 sergiodj+buildbot
  2016-08-02 10:31 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
  0 siblings, 1 reply; 37+ messages in thread
From: sergiodj+buildbot @ 2016-08-01 19:25 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 7ff72836aecd3e64f3d5ef4e5e444c82ad2c7086 ***

Author: Joel Brobecker <brobecker@adacore.com>
Branch: gdb-7.12-branch
Commit: 7ff72836aecd3e64f3d5ef4e5e444c82ad2c7086

Bump GDB version number to 7.11.90.DATE-git.

gdb/ChangeLog:

	* version.in: Set GDB version number to 7.11.90.DATE-git.


^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2017-01-22 12:21 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-09 15:04 [binutils-gdb/gdb-7.12-branch] Fix PR gdb/20295: GDB segfaults printing bitfield member of optimized out value sergiodj+buildbot
2016-08-09 14:34 ` Failures on Fedora-x86_64-native-gdbserver-m32, branch gdb-7.12-branch sergiodj+buildbot
2016-08-09 15:34 ` Failures on Fedora-x86_64-native-extended-gdbserver-m32, " sergiodj+buildbot
2016-08-09 15:36 ` Failures on Fedora-x86_64-m32, " sergiodj+buildbot
2016-08-09 16:01 ` Failures on Debian-s390x-native-gdbserver-m64, " sergiodj+buildbot
2016-08-09 16:14 ` Failures on Fedora-x86_64-native-extended-gdbserver-m64, " sergiodj+buildbot
2016-08-09 16:17 ` Failures on Debian-i686, " sergiodj+buildbot
2016-08-09 16:31 ` Failures on Debian-s390x-m64, " sergiodj+buildbot
2016-08-09 17:38 ` Failures on Debian-s390x-native-extended-gdbserver-m64, " sergiodj+buildbot
2016-08-09 19:34 ` Failures on Debian-i686-native-extended-gdbserver, " sergiodj+buildbot
2016-08-09 19:40 ` Failures on Fedora-x86_64-m64, " sergiodj+buildbot
2016-08-09 19:40 ` Failures on Fedora-s390x-m64, " sergiodj+buildbot
2016-08-09 20:15 ` Failures on Fedora-ppc64be-m64, " sergiodj+buildbot
2016-08-09 20:16 ` Failures on Fedora-ppc64le-m64, " sergiodj+buildbot
2016-08-09 20:18 ` Failures on Fedora-ppc64be-native-gdbserver-m64, " sergiodj+buildbot
2016-08-09 20:20 ` Failures on Fedora-ppc64le-native-extended-gdbserver-m64, " sergiodj+buildbot
2016-08-09 20:33 ` Failures on Fedora-ppc64be-native-extended-gdbserver-m64, " sergiodj+buildbot
2016-08-09 20:50 ` Failures on Fedora-ppc64be-cc-with-index, " sergiodj+buildbot
2016-08-09 20:51 ` Failures on Fedora-ppc64le-native-gdbserver-m64, " sergiodj+buildbot
2016-08-11 11:53 ` Failures on Ubuntu-AArch64-m64, " sergiodj+buildbot
  -- strict thread matches above, loose matches on Subject: below --
2017-01-20 13:17 [binutils-gdb/gdb-7.12-branch] Throw SJ/LJ exception on error in disassembly sergiodj+buildbot
2017-01-22 12:21 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
     [not found] <@gdb-build>
2016-12-20 15:59 ` sergiodj+buildbot
2016-12-21  7:17 ` sergiodj+buildbot
2016-12-20 20:16 [binutils-gdb/gdb-7.12-branch] gdb: Fix C and C++03 builds sergiodj+buildbot
2016-12-25  5:18 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
2016-11-11  7:48 [binutils-gdb/gdb-7.12-branch] sim: mips: fix dv-tx3904cpu build error sergiodj+buildbot
2016-11-23  4:29 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
2016-10-25  3:26 [binutils-gdb/gdb-7.12-branch] [GDBserver] Fix conversion warning sergiodj+buildbot
2016-10-25 14:17 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
2016-10-14  7:58 [binutils-gdb/gdb-7.12-branch] Include strings.h where available sergiodj+buildbot
2016-10-14 20:37 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
2016-10-12 12:26 [binutils-gdb/gdb-7.12-branch] [AArch64] Track FP registers in prologue analyzer sergiodj+buildbot
2016-10-12 13:07 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
2016-10-07 18:04 [binutils-gdb/gdb-7.12-branch] Bump GDB version number to 7.12.0.DATE-git sergiodj+buildbot
2016-10-09  3:04 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
2016-10-07 17:29 [binutils-gdb/gdb-7.12-branch] Set GDB version number to 7.12 sergiodj+buildbot
2016-10-09  1:43 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
2016-09-07  2:09 [binutils-gdb/gdb-7.12-branch] Introduce make_cleanup_restore_current_ui sergiodj+buildbot
2016-09-07 22:29 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
2016-08-10 19:27 [binutils-gdb/gdb-7.12-branch] Quiet ARI gettext checks sergiodj+buildbot
2016-08-10 19:25 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
2016-08-10  4:56 [binutils-gdb/gdb-7.12-branch] Fix PR gdb/20418 - Problems with synchronous commands and new-ui sergiodj+buildbot
2016-08-10 16:13 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
2016-08-10  2:14 [binutils-gdb/gdb-7.12-branch] Fix PR mi/20431 - Missing MI prompts after sync execution MI command (-exec-continue, etc.) errors sergiodj+buildbot
2016-08-10 15:24 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
2016-08-09 22:55 [binutils-gdb/gdb-7.12-branch] Fix PR gdb/18653: gdb disturbs inferior's inherited signal dispositions sergiodj+buildbot
2016-08-10  0:06 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
2016-08-09 16:53 [binutils-gdb/gdb-7.12-branch] Synchronize libiberty sources with FSF GCC mainline version sergiodj+buildbot
2016-08-09 21:02 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot
2016-08-01 19:25 [binutils-gdb/gdb-7.12-branch] Bump GDB version number to 7.11.90.DATE-git sergiodj+buildbot
2016-08-02 10:31 ` Failures on Fedora-ppc64le-m64, branch gdb-7.12-branch sergiodj+buildbot

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).