From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14022 invoked by alias); 9 Aug 2013 20:08:05 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 13980 invoked by uid 306); 9 Aug 2013 20:08:04 -0000 Date: Fri, 09 Aug 2013 20:08:00 -0000 Message-ID: <20130809200803.13886.qmail@sourceware.org> From: tromey@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] tromey/catch-exit: add a bit more text to the print_it_catch_exit output X-Git-Refname: refs/heads/tromey/catch-exit X-Git-Reftype: branch X-Git-Oldrev: 921b251ae9c48ae12273bfe3f742d190c0514fc6 X-Git-Newrev: e6d93dc4c201d7b23e6d760f115f507823ff7ee3 X-SW-Source: 2013-q3/txt/msg00021.txt.bz2 List-Id: The branch, tromey/catch-exit has been updated discards 921b251ae9c48ae12273bfe3f742d190c0514fc6 (commit) discards 385be8429c1bce524f7b2fcb284e92ed396eb472 (commit) discards 826c4e5b4507da65a43f5bbf49b83d3f38743396 (commit) discards 288c06759dfb70ac2d2d990777dcecac53bbe638 (commit) via e6d93dc4c201d7b23e6d760f115f507823ff7ee3 (commit) via b7ab13dc56943f5c15eed9a453267b082defb9ff (commit) via e82b16c30c9892f4104ec5061db6ab9548af6f2c (commit) via d169b2e6dd3f392abb8b0641945ddd77836897a3 (commit) via 9c9781cf79733672c875c1ef82b4230dab1cc928 (commit) via 778a21fc7789437ad7563056487543cc06bcc71d (commit) via cbdc3abf6733a673b8f15f3656fed5389c84c632 (commit) via c6816376ddbfefdf09ff2c03747abd0660626e83 (commit) via ff28ef08404333fdaad30f62662ef5f9371208ad (commit) via 54655f95e480b092eb3082c21e4336d24e2a0851 (commit) via d02ec4657177a59669b82406e04d53863691eed6 (commit) via 09047fb182c1b08f8c39b9046a7c8c1723474152 (commit) via 989f3a7ecaf66f767ec25d67ee1690f3424371cd (commit) via 387497365bb7377e42be58656b1f6a409c9ca55f (commit) via 3f11e3c3ba5e86a26eb678b2c3d0870cf585d653 (commit) via 4725aea56df012271db61cd6f4a00dd0d85c270f (commit) via 427ee0f12f5f22b5372d020ad8795033caccea56 (commit) via f481f474696ffbf874d1f9c97371e7bfcb6a47b3 (commit) via cb81ffd4f1c415b1f7f6ebce3a11d2b6777a02f2 (commit) via 6ae209793c817f943940a4a0f0da1c4d4ba15003 (commit) via 9581d55eeddac9d2d965c62c345991e138f27ccb (commit) via cbb25189b69e501ddca64917d810b54bb1466c93 (commit) via 7f350588e9fa12457cc33814ec32f79e33f193bb (commit) via a82b41ab61a641afe650cdde1a70c8834fe6c8ff (commit) via 735c540f6b8b8a77af01e7c324c0fb267005ffb8 (commit) via 20906da825104f6638a8452eb79ff9be60162e32 (commit) via c90923c3d3bb0c723e7060888c5034f24c8cd139 (commit) via 57cff626eb477c651122001df4f7f626e0c90568 (commit) via 93be37415c8e18dd27cfc6a601ebc8c2f9622586 (commit) via c05949d07b2011170e72443c5b21ae43f35e99d4 (commit) via 9e845f3a1ecdb854b114bcf26ab64c24c10a9f2e (commit) from 921b251ae9c48ae12273bfe3f742d190c0514fc6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e6d93dc4c201d7b23e6d760f115f507823ff7ee3 Author: Tom Tromey Date: Mon Aug 5 12:58:44 2013 -0600 add a bit more text to the print_it_catch_exit output commit b7ab13dc56943f5c15eed9a453267b082defb9ff Author: Tom Tromey Date: Mon Aug 5 12:56:18 2013 -0600 fix a few bugs this fixes some bugs in the implementation it prevents hangs in linux-nat by using PTRACE_CONT appropriately commit e82b16c30c9892f4104ec5061db6ab9548af6f2c Author: Tom Tromey Date: Mon Aug 5 12:17:16 2013 -0600 differentiate exiting with and without signal this differentiates existing with and without a signal this lets us remove a fixme from the reporting code this patch also cleans up the reporting code a little commit d169b2e6dd3f392abb8b0641945ddd77836897a3 Author: Tom Tromey Date: Fri Aug 2 11:19:02 2013 -0600 set $_exitcode when exiting this sets $_exitcode when TARGET_WAITKIND_EXITING is handled note that this will have to be redone when the $_exitcode change goes in commit 9c9781cf79733672c875c1ef82b4230dab1cc928 Author: Tom Tromey Date: Wed Oct 24 13:25:33 2012 -0600 start of gdbserver work this is the start of the gdbserver part unfinished commit 778a21fc7789437ad7563056487543cc06bcc71d Author: Tom Tromey Date: Tue Oct 23 12:33:22 2012 -0600 start of "catch exit" see PR 15812 for some rationale commit cbdc3abf6733a673b8f15f3656fed5389c84c632 Author: Tom Tromey Date: Thu Aug 1 11:38:19 2013 -0600 add README.archer commit c6816376ddbfefdf09ff2c03747abd0660626e83 Author: Eric Botcazou Date: Mon Aug 5 16:11:06 2013 +0000 gas/ * config/tc-sparc.c (sparc_arch_types): Add leon. (sparc_arch): Move sparc4 around and add leon. (sparc_target_format): Document -Aleon. * doc/c-sparc.texi: Likewise. include/ * opcode/sparc.h (sparc_opcode_arch_val): Add SPARC_OPCODE_ARCH_LEON. opcodes/ * sparc-dis.c (compute_arch_mask): Set SPARC_OPCODE_ARCH_LEON bit for bfd_mach_sparc. * sparc-opc.c (MASK_LEON): Define. (v6, v6notlet, v7, v8, v6notv9): Add MASK_LEON. (letandleon): New macro. (v9andleon): Likewise. (sparc_opc): Add leon. (umac): Enable for letandleon. (smac): Likewise. (casa): Enable for v9andleon. (cas): Likewise. (casl): Likewise. commit ff28ef08404333fdaad30f62662ef5f9371208ad Author: Mike Stump Date: Mon Aug 5 16:05:31 2013 +0000 Remove: 2013-07-10 Jack Howarth PR target/57792 * configure.ac: Use --with-sysroot=\"`xcrun --show-sdk-path`\" on darwin13 and later. * configure: Regenerated. commit 54655f95e480b092eb3082c21e4336d24e2a0851 Author: Tom Tromey Date: Mon Aug 5 15:51:01 2013 +0000 remove msymbol_objfile This is another patch in my ongoing series to "split" objfile to share more read-only data across inferiors. See http://sourceware.org/gdb/wiki/ObjfileSplitting When symbols are finally shared, there will be no back-link from the symbol to its containing objfile, because there may be more than one such objfile. So, all such back-links must be removed. One hidden back-link is the msymbol_objfile function. Since (eventually) a symbol may appear in more than one objfile, trying to look up the objfile given just a symbol cannot work. This patch removes msymbol_objfile in favor of using a bound minimal symbol. It introduces a new function to make this conversion simpler in some spots. The bonus of this patch is that using msymbol_objfile is slower than simply looking up the owning objfile in the first place. Built and regtested on x86-64 Fedora 18. * ada-exp.y (write_var_or_type): Use bound_minimal_symbol. * ada-lang.c (ada_lookup_simple_minsym): Return bound_minimal_symbol. * ada-lang.h (ada_lookup_simple_minsym): Update. * c-exp.y (variable): Use lookup_bound_minimal_symbol. * f-exp.y (variable): Use lookup_bound_minimal_symbol. * go-exp.y (variable): Use lookup_bound_minimal_symbol. * jv-exp.y (push_expression_name): Use lookup_bound_minimal_symbol. * m2-exp.y (variable): Use lookup_bound_minimal_symbol. * minsyms.c (msymbol_objfile): Remove. (lookup_minimal_symbol_internal): New function, from lookup_minimal_symbol. (lookup_minimal_symbol): Rewrite using lookup_minimal_symbol_internal. (lookup_bound_minimal_symbol): New function. * minsyms.h (msymbol_objfile): Remove. (lookup_bound_minimal_symbol): Declare. * p-exp.y (variable): Use lookup_bound_minimal_symbol. * parse.c (write_exp_msymbol): Change parameter to a bound_minimal_symbol. (write_dollar_variable): Use lookup_bound_minimal_symbol. * parser-defs.h (write_exp_msymbol): Update. * printcmd.c (address_info): Use lookup_bound_minimal_symbol. * symfile.c (simple_read_overlay_table): Use lookup_bound_minimal_symbol. * symtab.c (skip_prologue_sal): Don't use msymbol_objfile. (search_symbols): Likewise. (print_msymbol_info): Take a bound_minimal_symbol argument. (symtab_symbol_info, rbreak_command): Update. * symtab.h (struct symbol_search) : Change type to bound_minimal_symbol. * valops.c (find_function_in_inferior): Use lookup_bound_minimal_symbol. * value.c (value_fn_field): Use lookup_bound_minimal_symbol. commit d02ec4657177a59669b82406e04d53863691eed6 Author: sagovic Date: Mon Aug 5 15:39:25 2013 +0000 doc: gdbserver allows for subsequent and not for multiple simultaneous connections. doc/ 2013-08-05 Sanimir Agovic * gdb.texinfo (TCP port allocation lifecycle): Gdbserver by default allows for subsequent and not for additional (multiple simultaneous) connections. commit 09047fb182c1b08f8c39b9046a7c8c1723474152 Author: Jan Kratochvil Date: Mon Aug 5 15:03:06 2013 +0000 gdb/ Code cleanup. * remote.c (cleanup_sigint_signal_handler): Rename the declaration to ... (async_cleanup_sigint_signal_handler): ... this. (initialize_sigint_signal_handler): Remove declaration. (handle_remote_sigint): Rename the declaration to ... (async_handle_remote_sigint): ... this. (handle_remote_sigint_twice): Rename the declaration to ... (async_handle_remote_sigint_twice): ... this. (async_remote_interrupt, async_remote_interrupt_twice) (remote_interrupt): Remove the declarations. (remote_interrupt_twice): Rename the declaration ... (sync_remote_interrupt_twice): ... this. (sigint_remote_twice_token): Rename the variable to ... (async_sigint_remote_twice_token): ... this. (sigint_remote_token): Rename the variable to ... (async_sigint_remote_token): ... this. (initialize_sigint_signal_handler): Rename the function to ... (async_initialize_sigint_signal_handler): ... this. Update the name inside. (handle_remote_sigint): Rename the function to ... (async_handle_remote_sigint): ... this. Update the names inside. (handle_remote_sigint_twice): Rename the function to ... (async_handle_remote_sigint_twice): ... this. Update the names inside. (cleanup_sigint_signal_handler): Rename the function to ... (async_cleanup_sigint_signal_handler): ... this. (remote_interrupt): Rename the function to ... (sync_remote_interrupt): this. Update the names inside. (remote_interrupt_twice): Rename the function to ... (sync_remote_interrupt_twice): this. Update the names inside. (remote_terminal_inferior, remote_terminal_ours, remote_wait_as) (_initialize_remote): Update the names inside. commit 989f3a7ecaf66f767ec25d67ee1690f3424371cd Author: Alan Modra Date: Mon Aug 5 00:00:05 2013 +0000 daily update commit 387497365bb7377e42be58656b1f6a409c9ca55f Author: Richard Sandiford Date: Sun Aug 4 07:31:38 2013 +0000 include/opcode/ 2013-08-04 Jürgen Urban Richard Sandiford * mips.h: Document new VU0 operand characters. (OP_VU0_SUFFIX, OP_VU0_MATCH_SUFFIX): New mips_operand_types. (OP_REG_VF, OP_REG_VI, OP_REG_R5900_I, OP_REG_R5900_Q, OP_REG_R5900_R) (OP_REG_R5900_ACC): New mips_reg_operand_types. (INSN2_VU0_CHANNEL_SUFFIX): New macro. (mips_vu0_channel_mask): Declare. opcodes/ 2013-08-04 Jürgen Urban Richard Sandiford * mips-dis.c (print_reg): Handle OP_REG_VI, OP_REG_VF, OP_REG_R5900_I, OP_REG_R5900_Q, OP_REG_R5900_R and OP_REG_R5900_ACC. (print_vu0_channel): New function. (print_insn_arg): Handle OP_VU0_SUFFIX and OP_VU0_MATCH_SUFFIX. (print_insn_args): Handle '#'. (print_insn_mips): Handle INSN2_VU0_CHANNEL_SUFFIX. * mips-opc.c (mips_vu0_channel_mask): New constant. (decode_mips_operand): Handle new VU0 operand types. (VU0, VU0CH): New macros. (mips_builtin_opcodes): Add VU0 opcodes. Use "+7" rather than "E" for LQC2 and SQC2. Use "+9" rather than "G" for EE CFC2 and CTC2. Use "+6" rather than "G" for QMFC2 and QMTC2. gas/ 2013-08-04 Jürgen Urban Richard Sandiford * config/tc-mips.c (MAX_OPERANDS): Bump to 6. (RWARN): Bump to 0x8000000. (RTYPE_VI, RTYPE_VF, RTYPE_R5900_I, RTYPE_R5900_Q, RTYPE_R5900_R) (RTYPE_R5900_ACC): New register types. (RTYPE_MASK): Include them. (R5900_I_NAMES, R5900_Q_NAMES, R5900_R_NAMES, R5900_ACC_NAMES): New macros. (reg_names): Include them. (mips_parse_register_1): New function, split out from... (mips_parse_register): ...here. Add a channels_ptr parameter. Look for VU0 channel suffixes when nonnull. (reg_lookup): Update the call to mips_parse_register. (mips_parse_vu0_channels): New function. (OT_CHANNELS, OT_DOUBLE_CHAR): New mips_operand_token_types. (mips_operand_token): Add a "channels" field to the union. Extend the comment above "ch" to OT_DOUBLE_CHAR. (mips_parse_base_start): Match -- and ++. Handle channel suffixes. (mips_parse_argument_token): Handle channel suffixes here too. (validate_mips_insn): Handle INSN2_VU0_CHANNEL_SUFFIX. Ignore OP_VU0_MATCH_SUFFIX when calculating the used bits. Handle '#' formats. (md_begin): Register $vfN and $vfI registers. (operand_reg_mask): Handle OP_VU0_SUFFIX and OP_VU0_MATCH_SUFFIX. (convert_reg_type): Handle OP_REG_VI, OP_REG_VF, OP_REG_R5900_I, OP_REG_R5900_Q, OP_REG_R5900_R and OP_REG_R5900_ACC. (match_vu0_suffix_operand): New function. (match_operand): Handle OP_VU0_SUFFIX and OP_VU0_MATCH_SUFFIX. (macro): Use "+7" rather than "E" for LDQ2 and STQ2. (mips_lookup_insn): New function. (mips_ip): Use it. Allow "+K" operands to be elided at the end of an instruction. Handle '#' sequences. gas/testsuite/ 2013-08-04 Jürgen Urban * gas/mips/r5900-vu0.d: Expect $vfN and $viN instead of numeric coprocessor registers. * gas/mips/r5900-all-vu0.s, gas/mips/r5900-all-vu0.d, gas/mips/r5900-full-vu0.s, gas/mips/r5900-full-vu0.d, gas/mips/r5900-error-vu0.s, gas/mips/r5900-error-vu0.l: New tests. * gas/mips/mips.exp: Run them. commit 3f11e3c3ba5e86a26eb678b2c3d0870cf585d653 Author: Alan Modra Date: Sun Aug 4 00:00:05 2013 +0000 daily update commit 4725aea56df012271db61cd6f4a00dd0d85c270f Author: Richard Sandiford Date: Sat Aug 3 10:49:47 2013 +0000 include/opcode/ * mips.h (mips_pcrel_operand): Inherit from mips_int_operand. (mips_int_operand_min, mips_int_operand_max): New functions. (mips_decode_pcrel_operand): Use mips_decode_int_operand. opcodes/ * mips-formats.h (PCREL): Reorder parameters and update the definition to match new mips_pcrel_operand layout. (JUMP, JALX, BRANCH): Update accordingly. * mips16-opc.c (decode_mips16_operand): Likewise. gas/ * config/tc-mips.c (match_int_operand): Use mips_int_operand_min and mips_int_operand_max. (mips16_immed_operand, mips16_immed_operands, MIPS16_NUM_IMMED): Delete. (mips16_immed_operand, mips16_immed_in_range_p): New functions. (mips16_immed, mips16_extended_frag): Use them. Use mips_int_operand instead of mips16_immed_operand. commit 427ee0f12f5f22b5372d020ad8795033caccea56 Author: Alan Modra Date: Sat Aug 3 00:00:04 2013 +0000 daily update ----------------------------------------------------------------------- Summary of changes: ChangeLog | 6 - bfd/version.h | 2 +- configure | 7 - configure.ac | 7 - gdb/ChangeLog | 126 ++ gdb/ada-exp.y | 4 +- gdb/ada-lang.c | 22 +- gdb/ada-lang.h | 2 +- gdb/break-catch-exit.c | 29 +- gdb/breakpoint.c | 6 +- gdb/c-exp.y | 12 +- gdb/common/target-common.c | 3 + gdb/common/target-common.h | 4 + gdb/doc/gdb.texinfo | 2 +- gdb/dwarf2read.c | 105 +- gdb/eval.c | 18 +- gdb/f-exp.y | 6 +- gdb/fork-child.c | 1 + gdb/go-exp.y | 6 +- gdb/inferior.h | 5 + gdb/infrun.c | 65 +- gdb/jv-exp.y | 6 +- gdb/linespec.c | 61 +- gdb/linux-nat.c | 39 +- gdb/m2-exp.y | 6 +- gdb/mi/mi-common.c | 3 + gdb/mi/mi-common.h | 3 + gdb/mi/mi-interp.c | 1 - gdb/minsyms.c | 85 +- gdb/minsyms.h | 13 +- gdb/p-exp.y | 12 +- gdb/parse.c | 11 +- gdb/parser-defs.h | 2 +- gdb/ppc-linux-nat.c | 4 +- gdb/printcmd.c | 12 +- gdb/remote.c | 59 +- gdb/symfile.c | 11 +- gdb/symtab.c | 185 +- gdb/symtab.h | 10 +- gdb/testsuite/ChangeLog | 18 + gdb/testsuite/gdb.base/func-ptr.c | 30 + gdb/testsuite/gdb.base/func-ptr.exp | 30 + gdb/testsuite/gdb.base/watchpoint.c | 7 + gdb/testsuite/gdb.base/watchpoint.exp | 3 + gdb/testsuite/gdb.dwarf2/fission-mix.c | 33 + gdb/testsuite/gdb.dwarf2/fission-mix.exp | 46 + gdb/testsuite/gdb.dwarf2/fission-mix.h | 23 + gdb/testsuite/gdb.dwarf2/fission-mix2.c | 27 + gdb/valops.c | 14 +- gdb/value.c | 12 +- gdb/value.h | 3 +- include/ChangeLog | 5 + include/opcode/ChangeLog | 48 + include/opcode/mips.h | 283 ++-- include/opcode/sparc.h | 1 + opcodes/ChangeLog | 104 + opcodes/micromips-opc.c | 1455 ++++++------ opcodes/mips-dis.c | 75 +- opcodes/mips-formats.h | 15 +- opcodes/mips-opc.c | 3567 ++++++++++++++++-------------- opcodes/mips16-opc.c | 393 ++-- opcodes/sparc-dis.c | 3 +- opcodes/sparc-opc.c | 32 +- 63 files changed, 4004 insertions(+), 3184 deletions(-) create mode 100644 gdb/testsuite/gdb.base/func-ptr.c create mode 100644 gdb/testsuite/gdb.base/func-ptr.exp create mode 100644 gdb/testsuite/gdb.dwarf2/fission-mix.c create mode 100644 gdb/testsuite/gdb.dwarf2/fission-mix.exp create mode 100644 gdb/testsuite/gdb.dwarf2/fission-mix.h create mode 100644 gdb/testsuite/gdb.dwarf2/fission-mix2.c First 500 lines of diff: diff --git a/ChangeLog b/ChangeLog index fb46159..8b16b09 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,12 +3,6 @@ * src-release (VER): Use $(TOOL)/common/create-version.sh if it exists. -2013-07-10 Jack Howarth - - PR target/57792 - * configure.ac: Use --with-sysroot=\"`xcrun --show-sdk-path`\" on darwin13 and later. - * configure: Regenerated. - 2013-06-22 Richard Sandiford * configure.ac (mips*-*-bsd*, mips*-*-ultrix*, mips*-*-osf*) diff --git a/bfd/version.h b/bfd/version.h index 9c9d5d1..5e23301 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20130801 +#define BFD_VERSION_DATE 20130805 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/configure b/configure index 551389b..9da645b 100755 --- a/configure +++ b/configure @@ -7420,13 +7420,6 @@ if test x${is_cross_compiler} = xyes ; then target_configargs="--with-cross-host=${host_noncanonical} ${target_configargs}" fi -# Pass --with-sysroot on darwin without SDK in / -case "${target}" in - x86_64-*-darwin1[3-9]*) - host_configargs="--with-sysroot=\"`xcrun --show-sdk-path`\" ${host_configargs}" - ;; -esac - # Default to --enable-multilib. if test x${enable_multilib} = x ; then target_configargs="--enable-multilib ${target_configargs}" diff --git a/configure.ac b/configure.ac index d4dc10b..226239b 100644 --- a/configure.ac +++ b/configure.ac @@ -2854,13 +2854,6 @@ if test x${is_cross_compiler} = xyes ; then target_configargs="--with-cross-host=${host_noncanonical} ${target_configargs}" fi -# Pass --with-sysroot on darwin without SDK in / -case "${target}" in - x86_64-*-darwin1[[3-9]]*) - host_configargs="--with-sysroot=\"`xcrun --show-sdk-path`\" ${host_configargs}" - ;; -esac - # Default to --enable-multilib. if test x${enable_multilib} = x ; then target_configargs="--enable-multilib ${target_configargs}" diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9fbd29e..5da081f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,129 @@ +2013-08-05 Tom Tromey + + * ada-exp.y (write_var_or_type): Use bound_minimal_symbol. + * ada-lang.c (ada_lookup_simple_minsym): Return + bound_minimal_symbol. + * ada-lang.h (ada_lookup_simple_minsym): Update. + * c-exp.y (variable): Use lookup_bound_minimal_symbol. + * f-exp.y (variable): Use lookup_bound_minimal_symbol. + * go-exp.y (variable): Use lookup_bound_minimal_symbol. + * jv-exp.y (push_expression_name): Use lookup_bound_minimal_symbol. + * m2-exp.y (variable): Use lookup_bound_minimal_symbol. + * minsyms.c (msymbol_objfile): Remove. + (lookup_minimal_symbol_internal): New function, from + lookup_minimal_symbol. + (lookup_minimal_symbol): Rewrite using + lookup_minimal_symbol_internal. + (lookup_bound_minimal_symbol): New function. + * minsyms.h (msymbol_objfile): Remove. + (lookup_bound_minimal_symbol): Declare. + * p-exp.y (variable): Use lookup_bound_minimal_symbol. + * parse.c (write_exp_msymbol): Change parameter to a + bound_minimal_symbol. + (write_dollar_variable): Use lookup_bound_minimal_symbol. + * parser-defs.h (write_exp_msymbol): Update. + * printcmd.c (address_info): Use lookup_bound_minimal_symbol. + * symfile.c (simple_read_overlay_table): Use + lookup_bound_minimal_symbol. + * symtab.c (skip_prologue_sal): Don't use msymbol_objfile. + (search_symbols): Likewise. + (print_msymbol_info): Take a bound_minimal_symbol argument. + (symtab_symbol_info, rbreak_command): Update. + * symtab.h (struct symbol_search) : Change type + to bound_minimal_symbol. + * valops.c (find_function_in_inferior): Use + lookup_bound_minimal_symbol. + * value.c (value_fn_field): Use lookup_bound_minimal_symbol. + +2013-08-05 Jan Kratochvil + + Code cleanup. + * remote.c (cleanup_sigint_signal_handler): Rename the declaration + to ... + (async_cleanup_sigint_signal_handler): ... this. + (initialize_sigint_signal_handler): Remove declaration. + (handle_remote_sigint): Rename the declaration to ... + (async_handle_remote_sigint): ... this. + (handle_remote_sigint_twice): Rename the declaration to ... + (async_handle_remote_sigint_twice): ... this. + (async_remote_interrupt, async_remote_interrupt_twice) + (remote_interrupt): Remove the declarations. + (remote_interrupt_twice): Rename the declaration ... + (sync_remote_interrupt_twice): ... this. + (sigint_remote_twice_token): Rename the variable to ... + (async_sigint_remote_twice_token): ... this. + (sigint_remote_token): Rename the variable to ... + (async_sigint_remote_token): ... this. + (initialize_sigint_signal_handler): Rename the function to ... + (async_initialize_sigint_signal_handler): ... this. Update the name + inside. + (handle_remote_sigint): Rename the function to ... + (async_handle_remote_sigint): ... this. Update the names inside. + (handle_remote_sigint_twice): Rename the function to ... + (async_handle_remote_sigint_twice): ... this. Update the names inside. + (cleanup_sigint_signal_handler): Rename the function to ... + (async_cleanup_sigint_signal_handler): ... this. + (remote_interrupt): Rename the function to ... + (sync_remote_interrupt): this. Update the names inside. + (remote_interrupt_twice): Rename the function to ... + (sync_remote_interrupt_twice): this. Update the names inside. + (remote_terminal_inferior, remote_terminal_ours, remote_wait_as) + (_initialize_remote): Update the names inside. + +2013-08-02 Tom Tromey + + PR symtab/15719: + * breakpoint.c (update_watchpoint, watchpoint_check) + (watch_command_1): Update. + * eval.c (fetch_subexp_value): Add "preserve_errors" + parameter. + * ppc-linux-nat.c (check_condition): Update. + * value.h (fetch_subexp_value): Update. + +2013-08-02 Andrew Burgess + + * mi/mi-interp.c (mi_interpreter_resume): Remove call to + add_file_handler. + +2013-08-01 Doug Evans + + PR symtab/15691 + * dwarf2read.c (struct dwarf2_per_cu_data): New member tu_read. + (fill_in_sig_entry_from_dwo_entry): Reorganize asserts. + Add assert of sig_entry->dwo_unit == NULL. + (lookup_dwo_signatured_type): Don't assign TU to a DWO if the TU + had already been read. + (read_signatured_type): Set per_cu.tu_read. + + PR symtab/15695 + * valops.c (value_struct_elt): Add missing call to check_typedef. + (value_find_oload_method_list): Ditto. + + * symtab.c (do_free_search_symbols_cleanup): Change arg to, + effectively, struct symbol_search **. + (make_cleanup_free_search_symbols): Change arg to struct + symbol_search **. All callers updated. + (compare_search_syms): Compare symtab file name and block as well. + (search_symbols_equal): New function. + (sort_search_symbols_remove_dups): Renamed from sort_search_symbols. + New args new_head, new_tail. Result is now void. Remove dups after + sorting the symbols. + (search_symbols): Sort all found symbols once, after all have been + found, and remove duplicates. Simplify cleanup tracking of result. + * symtab.h (make_cleanup_free_search_symbols): Update prototype. + + Further workarounds for binutils/15021. + * dwarf2read.c (recursively_compute_inclusions): Change type of result + parameter to VEC (symtab_ptr) **. New parameter all_type_symtabs. + Watch for duplicate symtabs coming from type units. + (compute_symtab_includes): Update call to + recursively_compute_inclusions. Build vector of included symtabs + instead of per_cus. + * symtab.h (symtab_ptr): New typedef. + (DEF_VEC_P (symtab_ptr)): New VEC type. + * linespec.c (symtab_p): Delete. All uses updated to use symtab_ptr + instead. + 2013-08-01 Andrew Burgess * cli/cli-script.c (script_from_file): Remove use of diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y index d9fa9ac..702a32e 100644 --- a/gdb/ada-exp.y +++ b/gdb/ada-exp.y @@ -1369,9 +1369,9 @@ write_var_or_type (const struct block *block, struct stoken name0) } else if (nsyms == 0) { - struct minimal_symbol *msym + struct bound_minimal_symbol msym = ada_lookup_simple_minsym (encoded_name); - if (msym != NULL) + if (msym.minsym != NULL) { write_exp_msymbol (msym); /* Maybe cause error here rather than later? FIXME? */ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index dc5f2b6..ba59913 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -4405,18 +4405,22 @@ defns_collected (struct obstack *obstackp, int finish) return (struct ada_symbol_info *) obstack_base (obstackp); } -/* Return a minimal symbol matching NAME according to Ada decoding - rules. Returns NULL if there is no such minimal symbol. Names - prefixed with "standard__" are handled specially: "standard__" is - first stripped off, and only static and global symbols are searched. */ +/* Return a bound minimal symbol matching NAME according to Ada + decoding rules. Returns an invalid symbol if there is no such + minimal symbol. Names prefixed with "standard__" are handled + specially: "standard__" is first stripped off, and only static and + global symbols are searched. */ -struct minimal_symbol * +struct bound_minimal_symbol ada_lookup_simple_minsym (const char *name) { + struct bound_minimal_symbol result; struct objfile *objfile; struct minimal_symbol *msymbol; const int wild_match_p = should_use_wild_match (name); + memset (&result, 0, sizeof (result)); + /* Special case: If the user specifies a symbol name inside package Standard, do a non-wild matching of the symbol name without the "standard__" prefix. This was primarily introduced in order @@ -4431,10 +4435,14 @@ ada_lookup_simple_minsym (const char *name) { if (match_name (SYMBOL_LINKAGE_NAME (msymbol), name, wild_match_p) && MSYMBOL_TYPE (msymbol) != mst_solib_trampoline) - return msymbol; + { + result.minsym = msymbol; + result.objfile = objfile; + break; + } } - return NULL; + return result; } /* For all subprograms that statically enclose the subprogram of the diff --git a/gdb/ada-lang.h b/gdb/ada-lang.h index 55c0a81..4ea25b8 100644 --- a/gdb/ada-lang.h +++ b/gdb/ada-lang.h @@ -239,7 +239,7 @@ extern void ada_lookup_encoded_symbol (const char *name, const struct block *block, domain_enum namespace, struct ada_symbol_info *symbol_info); -extern struct minimal_symbol *ada_lookup_simple_minsym (const char *); +extern struct bound_minimal_symbol ada_lookup_simple_minsym (const char *); extern void ada_fill_in_ada_prototype (struct symbol *); diff --git a/gdb/break-catch-exit.c b/gdb/break-catch-exit.c index 31e0b0e..c837e31 100644 --- a/gdb/break-catch-exit.c +++ b/gdb/break-catch-exit.c @@ -57,7 +57,8 @@ breakpoint_hit_catch_exit (const struct bp_location *bl, struct address_space *aspace, CORE_ADDR bp_addr, const struct target_waitstatus *ws) { - return ws->kind == TARGET_WAITKIND_EXITING; + return (ws->kind == TARGET_WAITKIND_EXITING + || ws->kind == TARGET_WAITKIND_EXITING_SIGNAL); } /* Implement the "print_it" breakpoint_ops method for exit @@ -68,24 +69,28 @@ print_it_catch_exit (bpstat bs) { struct ui_out *uiout = current_uiout; struct breakpoint *b = bs->breakpoint_at; + ptid_t ptid; + struct target_waitstatus last; + + get_last_target_status (&ptid, &last); annotate_catchpoint (b->number); if (b->disposition == disp_del) ui_out_text (uiout, "\nTemporary catchpoint "); else ui_out_text (uiout, "\nCatchpoint "); - if (ui_out_is_mi_like_p (uiout)) - { - /* FIXME */ - /* ui_out_field_string (uiout, "reason", */ - /* async_reason_lookup (EXEC_ASYNC_EXIT)); */ - ui_out_field_string (uiout, "disp", bpdisp_text (b->disposition)); - } + ui_out_field_int (uiout, "bkptno", b->number); - ui_out_text (uiout, " (exiting process "); - /* FIXME */ - /* ui_out_field_int (uiout, "newpid", ptid_get_pid (c->forked_inferior_pid)); */ - ui_out_text (uiout, "), "); + ui_out_text (uiout, " (catch exit)\n"); + + if (last.kind == TARGET_WAITKIND_EXITING_SIGNAL) + print_signal_exited_reason (last.value.sig, 0); + else + print_exited_reason (last.value.integer, 0); + + if (ui_out_is_mi_like_p (uiout)) + ui_out_field_string (uiout, "disp", bpdisp_text (b->disposition)); + return PRINT_SRC_AND_LOC; } diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 1e89407..eec7b7c 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -1807,7 +1807,7 @@ update_watchpoint (struct watchpoint *b, int reparse) struct value *val_chain, *v, *result, *next; struct program_space *frame_pspace; - fetch_subexp_value (b->exp, &pc, &v, &result, &val_chain); + fetch_subexp_value (b->exp, &pc, &v, &result, &val_chain, 0); /* Avoid setting b->val if it's already set. The meaning of b->val is 'the last value' user saw, and we should update @@ -4822,7 +4822,7 @@ watchpoint_check (void *p) return WP_VALUE_CHANGED; mark = value_mark (); - fetch_subexp_value (b->exp, &pc, &new_val, NULL, NULL); + fetch_subexp_value (b->exp, &pc, &new_val, NULL, NULL, 0); /* We use value_equal_contents instead of value_equal because the latter coerces an array to a pointer, thus comparing just @@ -11010,7 +11010,7 @@ watch_command_1 (const char *arg, int accessflag, int from_tty, exp_valid_block = innermost_block; mark = value_mark (); - fetch_subexp_value (exp, &pc, &val, &result, NULL); + fetch_subexp_value (exp, &pc, &val, &result, NULL, just_location); if (just_location) { diff --git a/gdb/c-exp.y b/gdb/c-exp.y index dd032d2..3a51878 100644 --- a/gdb/c-exp.y +++ b/gdb/c-exp.y @@ -1004,7 +1004,7 @@ variable: qualified_name { char *name = copy_name ($2.stoken); struct symbol *sym; - struct minimal_symbol *msymbol; + struct bound_minimal_symbol msymbol; sym = lookup_symbol (name, (const struct block *) NULL, @@ -1018,8 +1018,8 @@ variable: qualified_name break; } - msymbol = lookup_minimal_symbol (name, NULL, NULL); - if (msymbol != NULL) + msymbol = lookup_bound_minimal_symbol (name); + if (msymbol.minsym != NULL) write_exp_msymbol (msymbol); else if (!have_full_symbols () && !have_partial_symbols ()) error (_("No symbol table is loaded. Use the \"file\" command.")); @@ -1066,12 +1066,12 @@ variable: name_not_typename } else { - struct minimal_symbol *msymbol; + struct bound_minimal_symbol msymbol; char *arg = copy_name ($1.stoken); msymbol = - lookup_minimal_symbol (arg, NULL, NULL); - if (msymbol != NULL) + lookup_bound_minimal_symbol (arg); + if (msymbol.minsym != NULL) write_exp_msymbol (msymbol); else if (!have_full_symbols () && !have_partial_symbols ()) error (_("No symbol table is loaded. Use the \"file\" command.")); diff --git a/gdb/common/target-common.c b/gdb/common/target-common.c index 2ba87ee..6e51bed 100644 --- a/gdb/common/target-common.c +++ b/gdb/common/target-common.c @@ -67,6 +67,9 @@ target_waitstatus_to_string (const struct target_waitstatus *ws) case TARGET_WAITKIND_EXITING: return xstrprintf ("%sexiting, status = %d", kind_str, ws->value.integer); + case TARGET_WAITKIND_EXITING_SIGNAL: + return xstrprintf ("%sexiting, signal = %s", + kind_str, gdb_signal_to_name (ws->value.sig)); case TARGET_WAITKIND_SPURIOUS: return xstrprintf ("%sspurious", kind_str); case TARGET_WAITKIND_IGNORE: diff --git a/gdb/common/target-common.h b/gdb/common/target-common.h index be42262..f433c89 100644 --- a/gdb/common/target-common.h +++ b/gdb/common/target-common.h @@ -93,6 +93,10 @@ enum target_waitkind available. The exit status is in value.integer. */ TARGET_WAITKIND_EXITING, + /* Like TARGET_WAITKIND_EXITING, but the program is about to exit + due to a signal. The signal is in value.sig. */ + TARGET_WAITKIND_EXITING_SIGNAL, + /* Nothing happened, but we stopped anyway. This perhaps should be handled within target_wait, but I'm not sure target_wait should be resuming the inferior. */ diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index cb393e8..6d5dec4 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -18182,7 +18182,7 @@ completeness, at most one @value{GDBN} can be connected at a time. @cindex @option{--once}, @code{gdbserver} option By default, @code{gdbserver} keeps the listening TCP port open, so that -additional connections are possible. However, if you start @code{gdbserver} +subsequent connections are possible. However, if you start @code{gdbserver} with the @option{--once} option, it will stop listening for any further connection attempts after connecting to the first @value{GDBN} session. This means no further connections to @code{gdbserver} will be possible after the diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index d18eaed..cb77386 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -558,6 +558,16 @@ struct dwarf2_per_cu_data attributes in the stub. */ unsigned int reading_dwo_directly : 1; + /* Non-zero if the TU has been read. + This is used to assist the "Stay in DWO Optimization" for Fission: + When reading a DWO, it's faster to read TUs from the DWO instead of + fetching them from random other DWOs (due to comdat folding). + If the TU has already been read, the optimization is unnecessary + (and unwise - we don't want to change where gdb thinks the TU lives + "midflight"). + This flag is only valid if is_debug_types is true. */ + unsigned int tu_read : 1; + /* The section this CU/TU lives in. If the DIE refers to a DWO file, this is always the original die, not the DWO file. */ @@ -4443,11 +4453,7 @@ fill_in_sig_entry_from_dwo_entry (struct objfile *objfile, struct signatured_type *sig_entry, struct dwo_unit *dwo_entry) { - sig_entry->per_cu.section = dwo_entry->section; - sig_entry->per_cu.offset = dwo_entry->offset; - sig_entry->per_cu.length = dwo_entry->length; - sig_entry->per_cu.reading_dwo_directly = 1; - sig_entry->per_cu.objfile = objfile; + /* Make sure we're not clobbering something we don't expect to. */ gdb_assert (! sig_entry->per_cu.queued); gdb_assert (sig_entry->per_cu.cu == NULL); gdb_assert (sig_entry->per_cu.v.quick != NULL); @@ -4455,19 +4461,26 @@ fill_in_sig_entry_from_dwo_entry (struct objfile *objfile, gdb_assert (sig_entry->signature == dwo_entry->signature); gdb_assert (sig_entry->type_offset_in_section.sect_off == 0); gdb_assert (sig_entry->type_unit_group == NULL); + gdb_assert (sig_entry->dwo_unit == NULL); + + sig_entry->per_cu.section = dwo_entry->section; + sig_entry->per_cu.offset = dwo_entry->offset; + sig_entry->per_cu.length = dwo_entry->length; + sig_entry->per_cu.reading_dwo_directly = 1; + sig_entry->per_cu.objfile = objfile; sig_entry->type_offset_in_tu = dwo_entry->type_offset_in_tu; sig_entry->dwo_unit = dwo_entry; } /* Subroutine of lookup_signatured_type. - Create the signatured_type data structure for a TU to be read in - directly from a DWO file, bypassing the stub. - We do this for the case where there is no DWP file and we're using - .gdb_index: When reading a CU we want to stay in the DWO file containing - that CU. Otherwise we could end up reading several other DWO files (due - to comdat folding) to process the transitive closure of all the mentioned - TUs, and that can be slow. The current DWO file will have every type - signature that it needs. hooks/post-receive -- Repository for Project Archer.