Doug Evans [Thu, 6 Jun 2013 19:02:27 +0000 (19:02 +0000)]
* gdb.cp/derivation.exp: Make tests have unique names.
Tom Tromey [Thu, 6 Jun 2013 19:00:13 +0000 (19:00 +0000)]
* gdb.base/dump.exp (capture_value): Don't put expression into
test name if arguments passed in.
Rename a couple more tests to make them unique.
Doug Evans [Thu, 6 Jun 2013 18:02:48 +0000 (18:02 +0000)]
Add PR number to this entry:
PR server/15594
* linux-x86-low.c (ps_get_thread_area): Properly extend address to
64 bits in 64-cross-32 environment.
Tom Tromey [Thu, 6 Jun 2013 15:50:37 +0000 (15:50 +0000)]
* gdb.base/break-always.exp: Explicitly specify test name.
Gary Benson [Thu, 6 Jun 2013 08:50:08 +0000 (08:50 +0000)]
Add missing PR to ChangeLog entry
Cary Coutant [Thu, 6 Jun 2013 06:06:56 +0000 (06:06 +0000)]
gold/
Add missing test case from last patch.
Joel Brobecker [Thu, 6 Jun 2013 05:16:06 +0000 (05:16 +0000)]
Replace "(tiny patch)" by "(tiny change)" in gdb ChangeLogs...
... as this is the wording recommended by the FSF via the manual
for Maintainers of GNU software.
Joel Brobecker [Thu, 6 Jun 2013 05:10:20 +0000 (05:10 +0000)]
Annotate last gdb.texinfo patch as accepted as a "tiny patch"
(copyright assignment not needed because patch is small enough to
not be legally significant).
Alan Modra [Thu, 6 Jun 2013 00:00:04 +0000 (00:00 +0000)]
daily update
gdbadmin [Thu, 6 Jun 2013 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***
Cary Coutant [Wed, 5 Jun 2013 23:52:21 +0000 (23:52 +0000)]
2013-06-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
gold/
* layout.cc (Layout::set_segment_offsets): Taking care of the case when
the maximum segment alignment is larger than the page size.
* testsuite/Makefile.am (large_symbol_alignment): Test that Gold
correctly aligns the symbols with large alignemnt.
* testsuite/Makefile.in: Regenerate.
* testsuite/large_symbol_alignment.cc: New file.
Doug Evans [Wed, 5 Jun 2013 22:28:51 +0000 (22:28 +0000)]
PR 15519
* cp-namespace.c (find_symbol_in_baseclass): Call
cp_lookup_symbol_in_namespace instead of cp_lookup_symbol_namespace.
Check result of call to lookup_symbol_static.
Call lookup_static_symbol_aux unconditionally.
Call check_typedef on base types before accessing them.
(cp_lookup_nested_symbol): Fix comment.
testsuite/
* gdb.cp/derivation2.cc: New file.
* gdb.cp/derivation.cc (main): Call foo2.
* gdb.cp/derivation.exp: Add tests for typedefs in another
file, and when there's an active block.
Luis Machado [Wed, 5 Jun 2013 20:43:53 +0000 (20:43 +0000)]
* gnu-v3-abi.c (gnuv3_skip_trampoline): Handle thunk
minimal symbols pointing to function descriptors.
Luis Machado [Wed, 5 Jun 2013 20:38:37 +0000 (20:38 +0000)]
* gdb.cp/virtfunc.exp (make_one_vtable_result): Handle extra output
from targets that use function descriptors in the virtual tables.
Handle presence of dot symbols.
Tom Tromey [Wed, 5 Jun 2013 17:32:51 +0000 (17:32 +0000)]
* python/py-utils.c (gdb_pymodule_addobject): Cast away const.
Marc Khouzam [Wed, 5 Jun 2013 14:11:47 +0000 (14:11 +0000)]
2013-06-05 Simon Marchi <simon.marchi@ericsson.com>
* gdb.texinfo (Miscellaneous gdb/mi Commands): Fix -add-inferior
response field name (thread-group to inferior).
Mike Frysinger [Wed, 5 Jun 2013 01:42:13 +0000 (01:42 +0000)]
sim: use AM_MAINTAINER_MODE
I noticed the sim code is using an old implementation of the maintainer logic.
I cut it over to the new macro (like gdb has been doing). In practice, it
makes no difference currently as nothing in the sim tree uses it, but I have a
follow up commit for the Blackfin tree that needs it.
gdbadmin [Wed, 5 Jun 2013 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Wed, 5 Jun 2013 00:00:05 +0000 (00:00 +0000)]
daily update
Roland McGrath [Tue, 4 Jun 2013 19:24:10 +0000 (19:24 +0000)]
ld/testsuite/
* ld-size/size.exp: For *-*-nacl* targets, use options_regsub(ld)
to massage -m arguments into _nacl variants.
* ld/testsuite/ld-size/size32-1-i386.d: Loosen regexps so they
don't care what the exact addresses are.
* ld/testsuite/ld-size/size32-1-x32.d: Likewise.
* ld/testsuite/ld-size/size32-1-x86-64.d: Likewise.
* ld/testsuite/ld-size/size32-2-i386.d: Likewise.
* ld/testsuite/ld-size/size32-2-x32.d: Likewise.
* ld/testsuite/ld-size/size32-2-x86-64.d: Likewise.
* ld/testsuite/ld-size/size64-1-x32.d: Likewise.
* ld/testsuite/ld-size/size64-1-x86-64.d: Likewise.
* ld/testsuite/ld-size/size64-2-x32.d: Likewise.
* ld/testsuite/ld-size/size64-2-x86-64.d: Likewise.
H.J. Lu [Tue, 4 Jun 2013 16:08:51 +0000 (16:08 +0000)]
Update x86 nacl tests for section alignment change
* ld-i386/tlsbindesc-nacl.rd: Updated for text/data/bss section
alignment change.
* ld-x86-64/split-by-file-nacl.rd: Likewise.
Sergio Durigan Junior [Tue, 4 Jun 2013 15:13:33 +0000 (15:13 +0000)]
Fixing ChangeLog entry of the last commit.
Sergio Durigan Junior [Tue, 4 Jun 2013 15:12:52 +0000 (15:12 +0000)]
GDB was not restoring the signal handler before returning when a notification
was received. This patch fixes it.
2013-06-04 Sergio Durigan Junior <sergiodj@redhat.com>
Pedro Alves <palves@redhat.com>
* remote.c (remote_wait_as): Restore signal handler before returning
when GDB gets a notification.
Gary Benson [Tue, 4 Jun 2013 13:31:00 +0000 (13:31 +0000)]
2013-06-04 Gary Benson <gbenson@redhat.com>
* gdb.base/break-probes.exp: New file.
* gdb.base/break-probes.c: Likewise.
* gdb.base/break-probes-solib.c: Likewise.
* gdb.base/info-shared.exp: New file.
* gdb.base/info-shared.c: Likewise.
* gdb.base/info-shared-solib1.c: Likewise.
* gdb.base/info-shared-solib2.c: Likewise.
Gary Benson [Tue, 4 Jun 2013 13:23:32 +0000 (13:23 +0000)]
2013-06-04 Jan Kratochvil <jan.kratochvil@redhat.com>
Gary Benson <gbenson@redhat.com>
* lib/gdb.exp (build_executable_from_specs): Use gdb_compile_pthread,
gdb_compile_shlib or gdb_compile_shlib_pthreads where appropriate.
* lib/prelink-support.exp (build_executable_own_libs): Allow INTERP
to be set to "no" to indicate that no ld.so copy should be made.
* gdb.base/break-interp.exp (solib_bp): New constant.
(reach_1): Use the above instead of "_dl_debug_state".
(test_attach): Likewise.
(test_ld): Likewise.
* gdb.threads/dlopen-libpthread.exp: New file.
* gdb.threads/dlopen-libpthread.c: Likewise.
* gdb.threads/dlopen-libpthread-lib.c: Likewise.
* gdb.base/solib-corrupted.exp: Disable test if GDB is using probes.
Gary Benson [Tue, 4 Jun 2013 13:17:06 +0000 (13:17 +0000)]
2013-06-04 Gary Benson <gbenson@redhat.com>
* breakpoint.h (handle_solib_event): Moved function declaration
to solib.h.
* breakpoint.c (handle_solib_event): Moved function to solib.c.
(bpstat_stop_status): Pass new argument to handle_solib_event.
* solib.h (update_solib_breakpoints): New function declaration.
(handle_solib_event): Moved function declaration from
breakpoint.h.
* solib.c (update_solib_breakpoints): New function.
(handle_solib_event): Moved function from breakpoint.c.
Updated to call solib_ops->handle_event if not NULL.
* solist.h (target_so_ops): New fields "update_breakpoints" and
"handle_event".
* infrun.c (set_stop_on_solib_events): New function.
(_initialize_infrun): Use the above for "set
stop-on-solib-events".
(handle_inferior_event): Pass new argument to handle_solib_event.
* solib-svr4.c (probe.h): New include.
(svr4_free_library_list): New forward declaration.
(probe_action): New enum.
(probe_info): New struct.
(probe_info): New static variable.
(NUM_PROBES): New definition.
(svr4_info): New fields "using_xfer", "probes_table" and
"solib_list".
(free_probes_table): New function.
(free_solib_list): New function.
(svr4_pspace_data_cleanup): Free probes table and solib list.
(svr4_copy_library_list): New function.
(svr4_current_sos_via_xfer_libraries): New parameter "annex".
(svr4_read_so_list): New parameter "prev_lm".
(svr4_current_sos_direct): Renamed from "svr4_current_sos".
(svr4_current_sos): New function.
(probe_and_action): New struct.
(hash_probe_and_action): New function.
(equal_probe_and_action): Likewise.
(register_solib_event_probe): Likewise.
(solib_event_probe_at): Likewise.
(solib_event_probe_action): Likewise.
(solist_update_full): Likewise.
(solist_update_incremental): Likewise.
(disable_probes_interface_cleanup): Likewise.
(svr4_handle_solib_event): Likewise.
(svr4_update_solib_event_breakpoint): Likewise.
(svr4_update_solib_event_breakpoints): Likewise.
(svr4_create_solib_event_breakpoints): Likewise.
(enable_break): Free probes table before creating breakpoints.
Use svr4_create_solib_event_breakpoints to create breakpoints.
(svr4_solib_create_inferior_hook): Free the solib list.
(_initialize_svr4_solib): Initialise
svr4_so_ops.handle_solib_event and svr4_so_ops.update_breakpoints.
Gary Benson [Tue, 4 Jun 2013 13:10:53 +0000 (13:10 +0000)]
2013-06-04 Gary Benson <gbenson@redhat.com>
* target.h (target_ops): New field
"to_augmented_libraries_svr4_read".
(target_augmented_libraries_svr4_read): New macro.
* target.c (update_current_target): Handle
to_augmented_libraries_svr4_read.
* remote.c (remote_state): New field
"augmented_libraries_svr4_read".
(remote_augmented_libraries_svr4_read_feature): New function.
(remote_protocol_features): Add entry for
"augmented-libraries-svr4-read".
(remote_augmented_libraries_svr4_read): New function.
(init_remote_ops): Initialize
remote_ops.to_augmented_libraries_svr4_read.
Gary Benson [Tue, 4 Jun 2013 13:07:45 +0000 (13:07 +0000)]
2013-06-04 Gary Benson <gbenson@redhat.com>
* gdb.texinfo (General Query Packets/qSupported): Added
"qXfer:libraries-svr4:read" and "augmented-libraries-svr4-read".
to the table of currently defined stub features.
Added a more detailed entry for "augmented-libraries-svr4-read".
(General Query Packets/qXfer:libraries-svr4:read): Documented
the augmented form of this packet.
Gary Benson [Tue, 4 Jun 2013 13:02:15 +0000 (13:02 +0000)]
2013-06-04 Gary Benson <gbenson@redhat.com>
* NEWS: Update.
Gary Benson [Tue, 4 Jun 2013 12:59:21 +0000 (12:59 +0000)]
2013-06-04 Gary Benson <gbenson@redhat.com>
* server.c (handle_query): Add "augmented-libraries-svr4-read+"
to qSupported response when appropriate.
(handle_qxfer_libraries_svr4): Allow qXfer:libraries-svr4:read
with nonzero-length annex.
* linux-low.c (linux_qxfer_libraries_svr4): Parse and handle
arguments supplied in annex.
Gary Benson [Tue, 4 Jun 2013 12:53:34 +0000 (12:53 +0000)]
2013-06-04 Gary Benson <gbenson@redhat.com>
* objfiles.h (inhibit_section_map_updates): New function
declaration.
(resume_section_map_updates): Likewise.
(resume_section_map_updates_cleanup): Likewise.
* objfiles.c (objfile_pspace_info): Removed field
"objfiles_changed_p". New fields "new_objfiles_available",
"section_map_dirty" and "inhibit_updates".
(allocate_objfile): Set new_objfiles_available.
(free_objfile): Set section_map_dirty.
(objfile_relocate1): Likewise.
(in_plt_section): Likewise.
(find_pc_section): Update the conditions under which the
section map will be updated.
(inhibit_section_map_updates): New function.
(resume_section_map_updates): Likewise.
(resume_section_map_updates_cleanup): Likewise.
Gary Benson [Tue, 4 Jun 2013 12:50:21 +0000 (12:50 +0000)]
2013-06-04 Gary Benson <gbenson@redhat.com>
* probe.h (get_probe_argument_count): New declaration.
(evaluate_probe_argument): Likewise.
* probe.c (get_probe_argument_count): New function.
(evaluate_probe_argument): Likewise.
(probe_safe_evaluate_at_pc): Use the above new functions.
Alan Modra [Tue, 4 Jun 2013 02:44:35 +0000 (02:44 +0000)]
* ppc-tdep.h (ppc_insns_match_pattern): Update prototype.
* rs6000-tdep.c (read_insn): Add frame param, don't assume big-endian.
(ppc_insns_match_pattern): Add frame param. Avoid multiple
target mem reads on optional insns.
* ppc-linux-tdep.c (ppc_skip_trampoline_code): Update
ppc_insns_match_pattern calls.
* ppc64-tdep.c (ppc64_standard_linkage2, ppc64_standard_linkage3):
Add match for power7 thread safety insns, and new order of
std 2,40(1) insn. Correct code shown for _dl_runtime_resolve
invocation in comment, and update rest of comment.
(PPC64_STANDARD_LINKAGE1_LEN, PPC64_STANDARD_LINKAGE2_LEN,
PPC64_STANDARD_LINKAGE3_LEN): Delete.
(ppc64_standard_linkage2_target): Update insn offsets.
(ppc64_skip_trampoline_code): Use a single insn buffer. Match newer
stubs first. Update calls.
Yao Qi [Tue, 4 Jun 2013 01:33:31 +0000 (01:33 +0000)]
gdb/
* solib.c (solib_find): Don't need dir separator if path has
drive spec.
gdbadmin [Tue, 4 Jun 2013 00:00:32 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Tue, 4 Jun 2013 00:00:05 +0000 (00:00 +0000)]
daily update
Joel Brobecker [Mon, 3 Jun 2013 13:22:29 +0000 (13:22 +0000)]
Revert "fix cleanup handling in macho_symfile_read"
This patch indirectly causes a SEGV by creating a dangling pointer.
Reverting this patch while working on a clearer memory management
method for this part of the code.
gdb/Changelog:
Revert:
* machoread.c (macho_symfile_read): Assign first cleanup to
'back_to'.
Alan Modra [Mon, 3 Jun 2013 04:11:09 +0000 (04:11 +0000)]
* syms.c (_bfd_stab_section_find_nearest_line): Add last_str
var. Use it with last_stab.
Yao Qi [Mon, 3 Jun 2013 03:16:24 +0000 (03:16 +0000)]
gdb/
* mi/mi-cmd-var.c (mi_no_values, mi_simple_values): Move to
mi-parse.c. Make them static.
(mi_all_values): Likewise.
(mi_parse_values_option): Move to mi-parse.c. Rename it to
mi_parse_print_values. Make it external.
* mi/mi-cmds.h (mi_no_values, mi_simple_values, mi_all_values):
Remove the declarations.
* mi/mi-parse.c (mi_parse_print_values): Moved from mi-cmd-var.c.
* mi/mi-parse.h (mi_parse_print_values): Declare.
* mi/mi-cmd-stack.c: Include mi-parse.h.
(parse_print_values): Remove
(mi_cmd_stack_list_locals): Call mi_parse_print_values instead
of parse_print_values.
(mi_cmd_stack_list_args, mi_cmd_stack_list_variables): Likewise.
Alan Modra [Mon, 3 Jun 2013 00:00:04 +0000 (00:00 +0000)]
daily update
gdbadmin [Mon, 3 Jun 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
gdbadmin [Sun, 2 Jun 2013 00:00:32 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sun, 2 Jun 2013 00:00:05 +0000 (00:00 +0000)]
daily update
Denis Chertykov [Sat, 1 Jun 2013 07:14:44 +0000 (07:14 +0000)]
* gas/config/tc-avr.c: Change ISA for devices with USB support to
AVR_ISA_XMEGAU
* include/opcode/avr.h: Rename AVR_ISA_XCH to AVR_ISA_RMW. Remove
from AVR_ISA_XMEGA and add new AVR_ISA_XMEGAU
DJ Delorie [Sat, 1 Jun 2013 01:01:44 +0000 (01:01 +0000)]
merge from gcc
Alan Modra [Sat, 1 Jun 2013 00:00:04 +0000 (00:00 +0000)]
daily update
gdbadmin [Sat, 1 Jun 2013 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***
Doug Evans [Fri, 31 May 2013 19:14:33 +0000 (19:14 +0000)]
* linux-x86-low.c (ps_get_thread_area): Properly extend address to
64 bits in 64-cross-32 environment.
H.J. Lu [Fri, 31 May 2013 17:27:28 +0000 (17:27 +0000)]
Don't align text/data/bss sections for ELF
binutils/testsuite/
* binutils-all/i386/compressed-1b.d: Updated for text/data/bss
section alignment change.
* binutils-all/i386/compressed-1c.d: Likewise.
* binutils-all/x86-64/compressed-1b.d: Likewise.
* binutils-all/x86-64/compressed-1c.d: Likewise.
gas/
* config/tc-i386.c (md_begin): Don't align text/data/bss sections
for ELF.
gas/testsuite/
* gas/i386/size-3.d: Updated for text/data/bss section alignment
change.
* gas/i386/x86-64-size-1.d: Likewise.
* gas/i386/x86-64-unwind.d: Likewise.
* gas/i386/ilp32/x86-64-size-1.d: Likewise.
* gas/i386/ilp32/x86-64-size-5.d: Likewise.
* gas/i386/ilp32/x86-64-unwind.d: Likewise.
ld/testsuite/
* ld-i386/pr12718.d: Updated for text/data/bss section alignment
change.
* ld-i386/tlsbindesc.dd: Likewise.
* ld-i386/tlsbindesc.rd: Likewise.
* ld-i386/tlsnopic.dd: Likewise.
* ld-i386/tlspic.dd: Likewise.
* ld-x86-64/ilp32-4.d: Likewise.
* ld-x86-64/pr12718.d: Likewise.
* ld-x86-64/split-by-file.rd: Likewise.
* ld-x86-64/tlsbin.dd: Likewise.
* ld-x86-64/tlsbin.rd: Likewise.
* ld-x86-64/tlsbindesc.dd: Likewise.
* ld-x86-64/tlsbindesc.rd: Likewise.
* ld-x86-64/tlsdesc.dd: Likewise.
* ld-x86-64/tlsdesc.rd: Likewise.
* ld-x86-64/tlspic.dd: Likewise.
* ld-x86-64/tlspic.rd: Likewise.
Catherine Moore [Fri, 31 May 2013 17:04:53 +0000 (17:04 +0000)]
2013-05-31 Paul Brook <paul@codesourcery.com>
gas/
* config/tc-mips.c (s_ehword): New.
2013-05-31 Catherine Moore <clm@codesourcery.com>
gas/testsuite/
* gas/mips/ehword.d: New.
* gas/mips/ehword.s: New.
* gas/mips/mips.exp: Run ehword test.
Yao Qi [Fri, 31 May 2013 10:06:02 +0000 (10:06 +0000)]
gdb/
* tracepoint.c (all_tracepoint_actions_and_cleanup): Declare.
(encode_actions): Move code to ...
(all_tracepoint_actions_and_cleanup): ... here. New.
(trace_dump_command): Likewise.
gdbadmin [Fri, 31 May 2013 00:00:32 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Fri, 31 May 2013 00:00:04 +0000 (00:00 +0000)]
daily update
Cary Coutant [Thu, 30 May 2013 23:01:11 +0000 (23:01 +0000)]
2013-05-30 Alexander Ivchenko <alexander.ivchenko@intel.com>
Sriraman Tallam <tmsriram@google.com>
* options.h (sort_section): New option.
* output.h (Input_section_sort_section_prefix_special_ordering_compare):
Rename from Input_section_sort_section_name_special_ordering_compare.
(Input_section_sort_section_name_compare): New struct.
* output.cc (Output_section::Input_section_sort_section_name_compare::
operator()): New function.
(Output_section::sort_attached_input_sections): Use new sort function
for .text if --sort-section=name is specified.
* layout.cc (Layout::make_output_section):
Add sorting by name when --sort-section=name is specified.
* testsuite/Makefile.am (text_section_grouping): Test option
--sort-section=name.
* testsuite/Makefile.in: Regenerate.
* testsuite/section_sorting_name.cc: New file.
* testsuite/section_sorting_name.sh: New file.
Catherine Moore [Thu, 30 May 2013 20:27:21 +0000 (20:27 +0000)]
2013-05-30 Paul Brook <paul@codesourcery.com>
bfd/
* bfd-in2.h: Regenerate.
* elf32-mips.c (elf_mips_eh_howto): New.
(bfd_elf32_bfd_reloc_type_lookup ): Support BFD_RELOC_MIPS_EH.
(bfd_elf32_bfd_reloc_name_lookup): Likewise.
(mips_elf32_rtype_to_howto): Support R_MIPS_EH.
* elf64-mips.c (elf_mips_eh_howto): New.
(bfd_elf64_bfd_reloc_type_lookup): Support BFD_RELOC_MIPS_EH.
(bfd_elf64_bfd_reloc_name_lookup): Likewise.
(mips_elf64_rtype_to_howto): Support R_MIPS_EH.
* libbfd.h: Regenerate.
* reloc.c (BFD_RELOC_MIPS_EH): New.
gas/
* config/tc-mips.c (md_apply_fix): Support BFD_RELOC_MIPS_EH.
include/elf
* mips.h (R_MIPS_EH): New.
Tom Tromey [Thu, 30 May 2013 17:44:54 +0000 (17:44 +0000)]
maintenance_expand_symtabs leaks a cleanup
It turns out that maintenance_expand_symtabs was missing a call to
do_cleanups. I found this using the cleanup checker.
* symmisc.c (maintenance_expand_symtabs): Call do_cleanups.
Tom Tromey [Thu, 30 May 2013 17:41:38 +0000 (17:41 +0000)]
fix up xml-support.c
xml-support.c has a function that returns a cleanup via an out parameter.
This changes this function to be a normal cleanup constructor --
returning the cleanup directly and returning the other result via an
out parameter.
This is sort of a hack, but it lets the checker work here.
I also noticed that gdb_xml_create_parser_and_cleanup does not need to
be exported any more.
* xml-support.c (gdb_xml_create_parser_and_cleanup): Rename from
gdb_xml_create_parser_and_cleanup_1. Return a cleanup. Remove
'old_chain' argument. Add 'parser_result' argument.
(gdb_xml_create_parser_and_cleanup): Remove old version.
(gdb_xml_parse_quick): Update.
(xml_process_xincludes): Update.
* xml-support.h (gdb_xml_create_parser_and_cleanup): Don't
declare.
Tom Tromey [Thu, 30 May 2013 17:39:34 +0000 (17:39 +0000)]
fix compile_rx_or_error
compile_rx_or_error looks like a constructor, but it can return NULL.
This patch changes it to remove the NULL return, making it work
like any other cleanup constructor.
This is a stylistic patch but I think it is also better for code to
follow the normal conventions.
* probe.c (collect_probes): Check arguments for NULL before
calling compile_rx_or_error.
* utils.c (compile_rx_or_error): Require 'rx' to be non-NULL.
Remove NULL return.
Tom Tromey [Thu, 30 May 2013 17:37:50 +0000 (17:37 +0000)]
some fixes to infrun.c
This fixes some of the problems in infrun.c that the checker reported.
I filed the remaining problems as bugs.
This patch is purely stylistic.
* infrun.c (adjust_pc_after_break): Introduce an outer null
cleanup.
Tom Tromey [Thu, 30 May 2013 17:37:12 +0000 (17:37 +0000)]
fix mi-cmd-var.c
This is a stylistic change in mi-cmd-var.c that adds outer cleanups
where needed by the checker.
* mi/mi-cmd-var.c (varobj_update_one): Add an outer null cleanup.
Tom Tromey [Thu, 30 May 2013 17:36:29 +0000 (17:36 +0000)]
fix cli-script.c
read_command_lines_1 had some (IMNSHO) spaghetti-ish code for cleanup
handling. This makes the code much simpler to understand, by
introducing an outer cleanup.
This is another case where a stylistic change for the checker is also
nice for the reader.
* cli/cli-script.c (read_command_lines_1): Use a null cleanup
for 'old_chain'. Do not check 'head' before processing
cleanups.
Tom Tromey [Thu, 30 May 2013 17:35:40 +0000 (17:35 +0000)]
fix mi-cmd-stack.c
mi-cmd-stack.d had a conditional cleanup, "cleanup_tuple" that
confused the checker. However, there was no need for this, since it
was only used via do_cleanups at the end of the function, just before
another call to do_cleanups.
So, while this is a stylistic patch for the checker, I also consider
it a generic improvement for readers of the code.
* mi/mi-cmd-stack.c (list_arg_or_local): Remove
"cleanup_tuple".
Tom Tromey [Thu, 30 May 2013 17:34:18 +0000 (17:34 +0000)]
fix dbxread.c
This is a stylistic change to make some code in dbxread.c analyzable
by the checker.
* dbxread.c (dbx_read_symtab): Declare 'back_to' in a more
inner scope. Unconditionally call do_cleanups.
Tom Tromey [Thu, 30 May 2013 17:33:41 +0000 (17:33 +0000)]
fix source.c
find_and_open_source can leak a cleanup.
* source.c (find_and_open_source): Call do_cleanups.
Tom Tromey [Thu, 30 May 2013 17:31:48 +0000 (17:31 +0000)]
fix linux-thread-db.c
This is a stylistic change to make it so the checker can analyze a
function in linux-thread-db.c.
* linux-thread-db.c (thread_db_load_search): Unconditionally
call do_cleanups.
Tom Tromey [Thu, 30 May 2013 17:31:00 +0000 (17:31 +0000)]
fix in solib-aix.c
solib_aix_bfd_open has an early "return" that doesn't run cleanups.
This fixes the problem by dropping the null_cleanup and using a later
cleanup as the master cleanup for the function.
* solib-aix.c (solib_aix_bfd_open): Don't use a null cleanup
for 'cleanup'; instead use a later one.
Tom Tromey [Thu, 30 May 2013 17:30:03 +0000 (17:30 +0000)]
use explicit returns to avoid checker confusion
The checker does not understand the idiom
if (except.reason < 0) {
do_cleanups (whatever);
GDB_PY_HANDLE_EXCEPTION (except);
}
because it doesn't realize that the nested 'if' actually has the same
condition.
This fixes instances of this to be more explicit.
* python/py-breakpoint.c (bppy_get_commands): Use
explicit, unconditional return.
* python/py-frame.c (frapy_read_var): Likewise.
* python/python.c (gdbpy_decode_line): Likewise.
Tom Tromey [Thu, 30 May 2013 17:29:06 +0000 (17:29 +0000)]
fix cp-namespace.c
cp_lookup_symbol_imports_or_template could return without
running cleanups.
* cp-namespace.c (cp_lookup_symbol_imports_or_template): Call
do_cleanups on all return paths.
Tom Tromey [Thu, 30 May 2013 17:27:44 +0000 (17:27 +0000)]
fix top.c
execute_command can leak a cleanup along one return path.
* top.c (execute_command): Discard 'cleanup_if_error' cleanups.
Tom Tromey [Thu, 30 May 2013 17:25:15 +0000 (17:25 +0000)]
fix one bug in stabsread.c
Some code in stabsread.c can return without running cleanups.
* stabsread.c (read_struct_type): Call do_cleanups along
all return paths.
Maciej W. Rozycki [Thu, 30 May 2013 17:23:05 +0000 (17:23 +0000)]
* mips-linux-tdep.c: Adjust formatting throughout.
Tom Tromey [Thu, 30 May 2013 17:21:51 +0000 (17:21 +0000)]
fix mipsread.c
Some code in mipsread.c could leak cleanups along some return paths.
* mipsread.c (read_alphacoff_dynamic_symtab): Call do_cleanups
along all return paths.
Tom Tromey [Thu, 30 May 2013 17:21:15 +0000 (17:21 +0000)]
fix one bug in symfile.c
find_separate_debug_file could leak a cleanup along some return paths.
* symfile.c (find_separate_debug_file): Call do_cleanups
along all return paths.
Tom Tromey [Thu, 30 May 2013 17:20:02 +0000 (17:20 +0000)]
fix symtab.c
search_symbols had some bad code resulting in a cleanup being both
discarded and run.
* symtab.c (search_symbols): Introduce a null cleanup for
'retval_chain'.
Tom Tromey [Thu, 30 May 2013 17:18:54 +0000 (17:18 +0000)]
fix py-value.c
Some code in py-value.c could exit a loop without running some
cleanups made in the loop.
* python/py-value.c (valpy_binop): Call do_cleanups before
exiting loop.
Tom Tromey [Thu, 30 May 2013 17:17:25 +0000 (17:17 +0000)]
fix py-prettyprint.c
print_children, in py-prettyprint.c, could call do_cleanups twice on
the same cleanup.
* python/py-prettyprint.c (print_children): Remove extra
do_cleanups call.
Tom Tromey [Thu, 30 May 2013 17:16:05 +0000 (17:16 +0000)]
fix py-frame.c
A couple return paths in frapy_read_var were missing do_cleanups calls.
* python/py-frame.c (frapy_read_var): Call do_cleanups along
all return paths.
Tom Tromey [Thu, 30 May 2013 17:14:35 +0000 (17:14 +0000)]
fix py-breakpoint.c
One return path in bppy_get_commands was missing a do_cleanups call.
* python/py-breakpoint.c (bppy_get_commands): Call do_cleanups
along all return paths.
Tom Tromey [Thu, 30 May 2013 17:13:19 +0000 (17:13 +0000)]
simplify cli-logging.c for analysis
This is another stylistic patch. It changes cli-logging.c to be
analyzable by the checker, again following the method of adding an
outer cleanup and unconditionally calling do_cleanups.
* cli/cli-logging.c (set_logging_redirect): Unconditionally
call do_cleanups.
Tom Tromey [Thu, 30 May 2013 17:11:38 +0000 (17:11 +0000)]
fix varobj.c
c_value_of_root is missing a call to do_cleanups at one return.
This fixes the problem by removing that return and letting control
fall through.
* varobj.c (c_value_of_root): Call do_cleanups along all
return paths.
Tom Tromey [Thu, 30 May 2013 17:10:41 +0000 (17:10 +0000)]
make a cleanup unconditionally in tracepoint.c
This is another cosmetic patch. It introduces an "outer" cleanup in
trace_dump_command and arranges to unconditionally call do_cleanups.
This lets the checker analyze the function.
* tracepoint.c (trace_dump_command): Unconditionally call
do_cleanups.
Tom Tromey [Thu, 30 May 2013 17:09:02 +0000 (17:09 +0000)]
fix two buglets in breakpoint.c
First, output_thread_groups leaks a cleanup along one return path.
Second, parse_cmd_to_aexpr could return without running its cleanups,
if there was an exception in a TRY_CATCH.
* breakpoint.c (output_thread_groups, parse_cmd_to_aexpr): Call
do_cleanups earlier.
Tom Tromey [Thu, 30 May 2013 17:06:31 +0000 (17:06 +0000)]
fix cleanup handling in macho_symfile_read
macho_symfile_read leaks a cleanup by assigning to 'back_to' too late.
* machoread.c (macho_symfile_read): Assign first cleanup to
'back_to'.
Tom Tromey [Thu, 30 May 2013 17:05:32 +0000 (17:05 +0000)]
fix cleanup handling in m32r_load
m32r_load is missing a call to do_cleanups along one return path.
* m32r-rom.c (m32r_load): Call do_cleanups at all returns.
Tom Tromey [Thu, 30 May 2013 17:04:47 +0000 (17:04 +0000)]
fix list_available_thread_groups
list_available_thread_groups, in mi-main.c, leaks a cleanup.
This changes it to call do_cleanups.
* mi/mi-main.c (list_available_thread_groups): Call do_cleanups.
Tom Tromey [Thu, 30 May 2013 17:04:03 +0000 (17:04 +0000)]
cleanup fixes for inf-ptrace.c
This is one of the stylistic patches. The code here in inf-ptrace.c
is not incorrect, but it is in a style that the cleanup checker cannot
handle. This patch changes it to a simpler style, following the usual
method of introducing an unconditional "outer" cleanup.
* inf-ptrace.c (inf_ptrace_create_inferior): Unconditionally
call discard_cleanups.
(inf_ptrace_attach): Likewise.
Tom Tromey [Thu, 30 May 2013 17:03:00 +0000 (17:03 +0000)]
cleanup fixes for remote-mips.c
remote-mips.c has a few 'return's where cleanups are not run.
* remote-mips.c (mips_exit_debug): Call do_cleanups on all
return paths.
(mips_initialize): Likewise.
(common_open): Call do_cleanups.
Tom Tromey [Thu, 30 May 2013 17:01:16 +0000 (17:01 +0000)]
fix up cleanup handling in internal_vproblem
internal_vproblem can return, so this introduces proper cleanup
handling there. Otherwise it may make a cleanup that is leaked.
* utils.c (internal_vproblem): Call do_cleanups.
Tom Tromey [Thu, 30 May 2013 16:57:38 +0000 (16:57 +0000)]
fix linespec bug noticed by the checker
This fixes a linespec bug noticed by the cleanup checker.
find_linespec_symbols did this:
cleanup = demangle_for_lookup (name, state->language->la_language,
&lookup_name);
[...]
cleanup = make_cleanup (xfree, canon);
But this is wrong, as it makes a subsequent call to do_cleanups not
clean up all the local state.
* linespec.c (find_linespec_symbols): Don't reassign to 'cleanup'.
Tom Tromey [Thu, 30 May 2013 16:31:33 +0000 (16:31 +0000)]
remove erroneous return from setup_user_args
This fixes setup_user_args to drop a useless and confusing "return".
* cli/cli-script.c (setup_user_args): Don't return after error.
Tom Tromey [Thu, 30 May 2013 16:28:29 +0000 (16:28 +0000)]
fix cleanups in som_symtab_read
This fixes som_symtab_read not to leak cleanups.
* somread.c (som_symtab_read): Call do_cleanups.
Tom Tromey [Thu, 30 May 2013 16:25:49 +0000 (16:25 +0000)]
fix print_command_1
This is a stylistic patch to make it so the checker can analyze
print_command_1. This amounts to installing an outer cleanup and
unconditionally invoking it.
* printcmd.c (print_command_1): Unconditionally call do_cleanups.
Tom Tromey [Thu, 30 May 2013 16:24:36 +0000 (16:24 +0000)]
some cleanup checker fixes
Fix some bugs pointed out by the cleanup checker. This one just fixes
some simple CLI reports, where CLI commands know that their caller
will do cleanups. This an older style with few instances, so it is
simpler to fix them up than to teach the checker about it.
* cli/cli-cmds.c (cd_command, alias_command): Call do_cleanups.
* cli/cli-dump.c (restore_binary_file): Call do_cleanups.
* interps.c (interpreter_exec_cmd): Call do_cleanups.
* source.c (show_substitute_path_command): Call do_cleanups.
(unset_substitute_path_command, set_substitute_path_command):
Likewise.
* symfile.c (load_command): Call do_cleanups.
Tom Tromey [Thu, 30 May 2013 16:22:06 +0000 (16:22 +0000)]
add the cleanup checker
This patch adds the cleanup checker. This is a Python plugin for GCC
that checks some rules for cleanup handling. In particular it tries
to notice when cleanups are left dangling at the end of a function.
It does this by applying a few simple rules.
First, it understands that a function whose return type is "struct
cleanup *" is a "cleanup constructor". Such functions are expected to
return the first cleanup that they make.
Then, it has the notion of a "master cleanup". The checker keeps a
stack of all cleanups made in a basic block. The first element is
pushed on the stack is the master cleanup -- the one that must later
be passed to either do_cleanups or discard_cleanups.
It is not perfect -- some constructs confuse it. So, part of this
series rewrites some code in gdb so that it is analyzable. I'll note
these spots and you can decide whether or not this is a good idea.
This patch also changes gcc-with-excheck to give it options. Now you
must use either -Xc (for the cleanup checker) or -Xx (for the
exception checker).
* contrib/cleanup_check.py: New file.
* contrib/gcc-with-excheck: Add option parsing.
Joel Brobecker [Thu, 30 May 2013 13:52:31 +0000 (13:52 +0000)]
windows_delete_thread: Add missing space in cast expression
gdb/ChangeLog:
* windows-nat.c (windows_delete_thread): Add missing space
in cast expression.
Hafiz Abid Qadeer [Thu, 30 May 2013 12:54:17 +0000 (12:54 +0000)]
2013-05-30 Hafiz Abid Qadeer <abidh@codesourcery.com>
* inferior.c (top level): Include tilde.h.
(add_inferior_command): Call tilde_expand on the value of 'exec'
argument.
Yao Qi [Thu, 30 May 2013 09:29:18 +0000 (09:29 +0000)]
gdb/
* tracepoint.c (encode_actions_1): Remove parameter 't'.
Caller update.
(encode_actions): Likewise.
* remote.c (remote_download_tracepoint): Caller update.
* tracepoint.h (encode_actions): Update declaration.
Pedro Alves [Thu, 30 May 2013 08:56:56 +0000 (08:56 +0000)]
Fix build breakage with Python 2.4.
With Python 2.4, we see this build failure:
./python/python-internal.h: In function 'gdb_Py_DECREF':
./python/python-internal.h:179: warning: dereferencing 'void *' pointer
./python/python-internal.h:179: error: request for member 'ob_refcnt' in something not a structure or union
Python 2.4 forgets to cast 'op' to PyObject pointer on the ob_refcnt
accesses:
#define Py_DECREF(op) \
if (_Py_DEC_REFTOTAL _Py_REF_DEBUG_COMMA \
--(op)->ob_refcnt != 0) \
_Py_CHECK_REFCNT(op) \
else \
_Py_Dealloc((PyObject *)(op))
...
#define _Py_CHECK_REFCNT(OP) \
{ if ((OP)->ob_refcnt < 0) \
_Py_NegativeRefcount(__FILE__, __LINE__, \
(PyObject *)(OP)); \
}
Python 2.7:
#define Py_DECREF(op) \
do { \
if (_Py_DEC_REFTOTAL _Py_REF_DEBUG_COMMA \
--((PyObject*)(op))->ob_refcnt != 0) \
_Py_CHECK_REFCNT(op) \
else \
_Py_Dealloc((PyObject *)(op)); \
} while (0)
...
#define _Py_CHECK_REFCNT(OP) \
{ if (((PyObject*)OP)->ob_refcnt < 0) \
_Py_NegativeRefcount(__FILE__, __LINE__, \
(PyObject *)(OP)); \
}
gdb/
2013-05-30 Pedro Alves <palves@redhat.com>
* python/python-internal.h (gdb_Py_DECREF): Cast OP to PyObject
pointer.
Yao Qi [Thu, 30 May 2013 00:40:21 +0000 (00:40 +0000)]
gdb/
* remote.c (remote_check_symbols): Remove unused parameter
'objfile'.
Declaration update.
(remote_start_remote, remote_new_objfile): Caller update.
Yao Qi [Thu, 30 May 2013 00:25:16 +0000 (00:25 +0000)]
gdb/
* mi/mi-cmds.c (mi_cmds): Define MI command
'-exec-arguments' by macro DEF_MI_CMD_CLI_1 instead of
DEF_MI_CMD_CLI.
gdb/testsuite/
* gdb.mi/mi-cmd-param-changed.exp (test_command_param_changed):
Add a test that no MI notification is emitted when executing
-exec-arguments.