summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Plug line_header leakusers/palves/line_header_leakPedro Alves2017-08-172-15/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This plugs a leak introduced by commit fff8551cf549 ("dwarf2read.c: Some C++fycation, use std::vector, std::unique_ptr"). The problem is that nothing owns the temporary line_header that handle_DW_AT_stmt_list creates in some cases. Before the commit mentioned above, the temporary line_header case used to have: make_cleanup (free_cu_line_header, cu); and that cleanup was assumed to be run at some later safe point after handle_DW_AT_stmt_list returns and before the child DIEs were processed. Fix this by making handle_DW_AT_stmt_list return an unique_ptr that owns the temporary line_header, if any, holding that line_header live while we process children. Thanks to Philippe Waroquiers for identifying the leak. gdb/ChangeLog: 2017-08-17 Pedro Alves <palves@redhat.com> * dwarf2read.c (handle_DW_AT_stmt_list): Return a line_header_up extending the lifetime of a temporary line_header. (read_file_scope): Hold the unique_ptr returned by handle_DW_AT_stmt_list in a variable. XXX
* Add test of V2 GNU build attribute notes.Nick Clifton2017-08-178-1/+232
| | | | | | | | | | | * testsuite/binutils-all/note-3-64.s: New test. Checks assembly and decoding of version2 GNU build attribute notes. * testsuite/binutils-all/note-3-32.s: New test. 32-bit version of the above test. * testsuite/binutils-all/note-3-64.d: New test driver. * testsuite/binutils-all/note-3-32.d: New test driver. * testsuite/binutils-all/objcopy.exp: Run the new test. * readelf.c (is_64bit_abs_reloc): Add R_SPARC_64.
* [AArch64] Skip IFUNC relocations in debug sectionsSzabolcs Nagy2017-08-172-3/+28
| | | | | | | | | | | | | | | | Skip IFUNC relocations in debug sections ignored by ld.so. Fixes the following ld test failures on aarch64: FAIL: Build libpr18808.so FAIL: Build libpr18808.so_2 FAIL: Run pr18808 aborting at bfd/elfnn-aarch64.c:4986 in elf64_aarch64_final_link_relocate. bfd/ PR ld/18808 * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Skip IFUNC relocations in debug sections, change abort to _bfd_error_handler.
* Add new Brazilian Portuguese translation for the ld subdirectory.Nick Clifton2017-08-174-2/+2958
| | | | | | * po/pt_BR.po: New Brazilian Portuguese translation. * configure.ac (ALL_LINGUAS): Add pt_BR. * configure: Regenerate.
* Synthetic symbol leak in elf_read_minimal_symbolsAlex Lindsay2017-08-172-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | Detected this leak with valgrind memcheck: ==30840== 194 bytes in 1 blocks are definitely lost in loss record 9,138 of 10,922 ==30840== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==30840== by 0x80DF82: bfd_malloc (libbfd.c:193) ==30840== by 0x80E12D: bfd_zmalloc (libbfd.c:278) ==30840== by 0x819E80: elf_x86_64_get_synthetic_symtab (elf64-x86-64.c:6835) ==30840== by 0x4F7B01: elf_read_minimal_symbols(objfile*, int, elfinfo const*) (elfread.c:1124) ==30840== by 0x4F7CE7: elf_symfile_read(objfile*, enum_flags<symfile_add_flag>) (elfread.c:1182) ==30840== by 0x7557FC: read_symbols(objfile*, enum_flags<symfile_add_flag>) (symfile.c:861) ==30840== by 0x755EE1: syms_from_objfile_1(objfile*, section_addr_info*, enum_flags<symfile_add_flag>) (symfile.c:1062) We perform a dynamic allocation in elf64-x86-64.c:elf_x86_64_get_synthetic_symtab s = *ret = (asymbol *) bfd_zmalloc (size); that appear to never get freed. gdb: 2017-08-17 Alex Lindsay <alexlindsay239@gmail.com> * elfread.c (elf_read_minimal_symbols): xfree synthsyms.
* Mention new TUI Single-Key mode shortcuts for nexti and stepi in NEWSRuslan Kabatsayev2017-08-172-0/+8
| | | | | | | gdb/ChangeLog: * NEWS: Mention new shortcuts for nexti and stepi in TUI Single-Key mode
* Automatic date update in version.inGDB Administrator2017-08-171-1/+1
|
* Add shortcuts for "nexti" and "stepi" commands in Single-Key modeRuslan Kabatsayev2017-08-164-0/+20
| | | | | | | | | | | | | | | | | | Currently, "layout asm" is not so useful as "layout src" with Single-Key mode: you have to use multi-key commands like "ni" and "si" to do single-stepping. This patch adds, in addition to "next" and "step" commands, corresponding assembly-level ones - "nexti" and "stepi" - to Single-Key mode, with the shortcuts of "o" (from "step Over") and "i" (from "Step Into") respectively. gdb/ChangeLog: * tui/tui.c (tui_commands): Add "nexti" and "stepi" to the Single-Key mode command list. gdb/doc/ChangeLog: * gdb.texinfo (TUI Single Key Mode): Document the new shortcuts in Single-Key mode.
* Automatic date update in version.inGDB Administrator2017-08-161-1/+1
|
* Add new NT_PPC_* available since Linux 4.8Gustavo Romero2017-08-164-0/+73
| | | | | | | | | | | | | | | | | | | | | | | Add new note types available since Linux 4.8 to elf/common.h and make the 'readelf' tool aware of it. include/ * elf/common.h (NT_PPC_TAR): New macro. (NT_PPC_PPR): Likewise. (NT_PPC_DSCR): Likewise. (NT_PPC_EBB): Likewise. (NT_PPC_PMU): Likewise. (NT_PPC_TM_CGPR): Likewise. (NT_PPC_TM_CFPR): Likewise. (NT_PPC_TM_CVMX): Likewise. (NT_PPC_TM_CVSX): Likewise. (NT_PPC_TM_SPR): Likewise. (NT_PPC_TM_CTAR): Likewise. (NT_PPC_TM_CPPR): Likewise. (NT_PPC_TM_CDSCR): Likewise. binutils/ * readelf.c (get_note_type): Handle PPC note types available since Linux 4.8.
* Add myself as a write-after-approval GDB maintainer.Stafford Horne2017-08-162-0/+5
| | | | | | gdb/ChangeLog: * MAINTAINERS (Write After Approval): Add Stafford Horne.
* xtensa: Properly strdup string when building reggroupStafford Horne2017-08-162-5/+5
| | | | | | | | | | | | | I noticed this while looking at the reggroup intializations. It seems for xtensa the "cpN" reggroup->name is getting assigned to the same text pointer for each iteration of XTENSA_MAX_COPROCESSOR. Note, internally reggroup_new() does not do any xstrdup(). gdb/ChangeLog: 2017-08-15 Stafford Horne <shorne@gmail.com> * xtensa-tdep.c (xtensa_init_reggroups): Use xstrdup for cpname.
* Fix PR gdb/21954: make 'unset environment' work againSergio Durigan Junior2017-08-154-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | When I made commit 9a6c7d9c021cfeb290d76584db7a01e57e7c3d4e, which C++-fied gdb/common/environ.[ch], I mistakenly altered the behaviour of the 'unset environment' command. This command, which should delete all environment variables, is now resetting the list of variables to the state they were when GDB was started. This commit fixes this regression, and also adds a test on gdb.base/environ.exp which really checks if 'unset environment' worked. gdb/ChangeLog: 2017-08-15 Sergio Durigan Junior <sergiodj@redhat.com> PR gdb/21954 * infcmd.c (unset_environment_command): Use the 'clear' method on the environment instead of resetting it. gdb/testsuite/ChangeLog: 2017-08-15 Sergio Durigan Junior <sergiodj@redhat.com> PR gdb/21954 * gdb.base/environ.exp: Add test to check if 'unset environment' works.
* Fix compile on big-endian platforms in siginfo_t converter.John Baldwin2017-08-152-1/+6
| | | | | | | gdb/ChangeLog: * fbsd-nat.c (fbsd_convert_siginfo): Fix compile on big-endian platforms.
* [Patch AArch64] Turn lr, fp, ip0 and ip1 into proper aliasesRamana Radhakrishnan2017-08-157-5/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | We got a report from the linux-arm-kernel folks about getting spurious warnings when building the kernel with binutils 2.29. See https://www.spinics.net/lists/arm-kernel/msg599929.html which boils down to this testcase. $> cat /tmp/tst.s lr .req x30 /tmp/tst.s: Assembler messages: /tmp/tst.s:1: Warning: ignoring attempt to redefine built-in register 'lr' Instead let's treat this as a proper alias at startup time thus avoiding the problem and treating these as proper aliases rather than new registers. This means that attempts to redefine the alias with the same "name" will provoke no warning and attempts to redefine the alias to something else will provoke the above mentioned warning. Tested make check-gas and no regressions. Ok to apply to trunk (and backport to 2.29 branch)? Regards Ramana
* GDB testsuite: Suppress GCC's colored outputAndreas Arnez2017-08-142-1/+34
| | | | | | | | | | | | | Newer GCC versions yield colored diagnostic messages by default, which may be useful when executing GDB interactively from a terminal. But when run from a GDB test case, the compiler output is written into gdb.log, where such escape sequences are usually more inhibiting than helpful to the evaluation of test results. So this patch suppresses that. gdb/testsuite/ChangeLog: * lib/gdb.exp (universal_compile_options): New caching proc. (gdb_compile): Suppress GCC's coloring of messages.
* Remove BITS_IN_BYTES defineTom Tromey2017-08-142-6/+9
| | | | | | | | | | | | While working on the previous patch, I noticed that BITS_IN_BYTES can be replaced by HOST_CHAR_BIT, which is used more widely in gdb. ChangeLog 2017-08-14 Tom Tromey <tom@tromey.com> * valprint.c (print_octal_chars): Use HOST_CHAR_BIT. (print_binary_chars): Likewise. (BITS_IN_BYTES): Remove.
* Fix two regressions in scalar printingTom Tromey2017-08-147-8/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR gdb/21675 points out a few regressions in scalar printing. One type of regression is due to not carrying over the old handling of floating point printing -- where a format like "/d" causes a floating point number to first be cast to a signed integer. This patch restores this behavior. The other regression is a longstanding bug in print_octal_chars: one of the constants was wrong. This patch fixes the constant and adds static asserts to help catch this sort of error. ChangeLog 2017-08-14 Tom Tromey <tom@tromey.com> PR gdb/21675 * valprint.c (LOW_ZERO): Change value to 034. (print_octal_chars): Add static_asserts for octal constants. * printcmd.c (print_scalar_formatted): Add 'd' case. testsuite/ChangeLog 2017-08-14 Tom Tromey <tom@tromey.com> PR gdb/21675: * gdb.base/printcmds.exp (test_radices): New function. * gdb.dwarf2/var-access.exp: Use p/u, not p/d. * gdb.base/sizeof.exp (check_valueof): Use p/d. * lib/gdb.exp (get_integer_valueof): Use p/d.
* Fix memory leak in add_symbol_file_commandTom Tromey2017-08-142-32/+15
| | | | | | | | | | | | | | | | | | | | | | I happened to notice that add_symbol_file_command leaks "sect_opts". This patch fixes the leak by changing sect_opts to be a std::vector. I had to change the logic in the loop a little bit. Previously, it was incrementing section_index after completing an entry; but this changes it to push a new entry when the name is seen. I believe the argument parsing here is mildly incorrect, in that nothing checks whether the -s option actually had any arguments. Maybe gdb can crash if "-s NAME" is given without an argument. I didn't try to fix this in this patch, but I do have another patch I can send later that fixes it up. Regression tested on the buildbot. ChangeLog 2017-08-11 Tom Tromey <tom@tromey.com> * symfile.c (add_symbol_file_command): Use std::vector.
* Use std::move in a few placesTom Tromey2017-08-144-3/+10
| | | | | | | | | | | | | | This patch adds std::move to few spots where it seems to be missing. Regression tested by the buildbot. ChangeLog 2017-08-14 Tom Tromey <tom@tromey.com> * break-catch-throw.c (handle_gnu_v3_exceptions): Use std::move. * break-catch-syscall.c (create_syscall_event_catchpoint): Use std::move. * break-catch-sig.c (create_signal_catchpoint): Use std::move.
* Fix null pointer dereference when parsing a corrupt ELF binary.Nick Clifton2017-08-143-1123/+1180
| | | | | | | PR 21957 * elf.c (setup_group): Check for an empty or very small group section. * po/bfd.pot: Regenerate.
* Automatic date update in version.inGDB Administrator2017-08-141-1/+1
|
* PR21441, Unnecessary padding of .eh_frame sectionAlan Modra2017-08-146-19/+45
| | | | | | | | | | | | | | | | | Until all .eh_frame sections have been edited we don't know their sizes. So it isn't possible to properly decide whether a non-empty .eh_frame section follows a given section until editing is complete. bfd/ PR 21441 * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't add alignment padding here. * elflink.c (bfd_elf_discard_info): Add .eh_frame padding here in a reverse pass over sections. ld/ PR 21441 * testsuite/ld-x86-64/pr21038a.d: Adjust. * testsuite/ld-x86-64/pr21038a-now.d: Adjust.
* ld: Restore linker scripts in PR ld/21884 testsH.J. Lu2017-08-1311-0/+67
| | | | | | | | | | | | | | | | | OUTPUT_FORMAT in linker script of PR ld/21884 tests is needed to trigger PR ld/21884. Restore linker scripts and add nacl versions of the same tests. * testsuite/ld-i386/i386.exp: Run pr21884-nacl. * testsuite/ld-x86-64/x86-64.exp: Likewise. * testsuite/ld-i386/pr21884.d: Don't run on nacl targets. * testsuite/ld-x86-64/pr21884.d: Likewise. * testsuite/ld-i386/pr21884.t: Revert the last change. * testsuite/ld-x86-64/pr21884.t: Likewise. * testsuite/ld-i386/pr21884-nacl.d: New file. * testsuite/ld-i386/pr21884-nacl.t: Likewise. * testsuite/ld-x86-64/pr21884-nacl.d: Likewise. * testsuite/ld-x86-64/pr21884-nacl.t: Likewise.
* Fix i686-nacl and x86_64-nacl pr21884 failuresAlan Modra2017-08-133-8/+5
| | | | | | | | OUTPUT_FORMAT in the script results in "./ld-new: target elf32-i386 not found" and similarly for the x86_64 test. * testsuite/ld-i386/pr21884.t: Remove unneeded format, arch and entry. * testsuite/ld-x86-64/pr21884.t: Likewise.
* Automatic date update in version.inGDB Administrator2017-08-131-1/+1
|
* Fix typo on documentation ("show set startup-with-shell")Sergio Durigan Junior2017-08-122-1/+7
| | | | | | | | | | | | | The documentation was erroneously saying that there is a command named "show set startup-with-shell", while the correct version is "show startup-with-shell". This commit fixes obvious mistake. gdb/doc/ChangeLog: 2017-08-12 Sergio Durigan Junior <sergiodj@redhat.com> PR gdb/21925 * gdb.texinfo (Starting) <startup-with-shell>: Fix typo ("show set...").
* testsuite: Exclude end-of-line characters from get_valueof resultSimon Marchi2017-08-122-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The get_valueof procedure allows tests to conveniently make gdb evaluate an expression an return the value as a string. However, it includes an end-of-line character in its result. I stumbled on this when trying to use that result as part of a regex further in a test. You can see this for example by adding a puts in gdb.dwarf2/implref-struct.exp:get_members: set members [get_valueof "" ${var} ""] puts "<$members>" The output is <{a = 0, b = 1, c = 2} > This is because the regex in get_valueof is too greedy, the captured portion matches anything up to the gdb_prompt, including the end of line characters. This patch changes it to capture everything but end of line characters. The output of the puts becomes: <{a = 0, b = 1, c = 2}> I tested this by running gdb.dwarf2/implref-array.exp and gdb.dwarf2/implref-struct.exp, the two only current users of that procedure. gdb/testsuite/ChangeLog: * lib/gdb.exp (get_valueof): Don't capture end-of-line characters.
* Collision between NT_GNU_BUILD_ATTRIBUTE_OPEN and NT_PPC_VMXAlan Modra2017-08-122-4/+15
| | | | | * readelf.c (process_note): Qualify NT_GNU_BUILD_ATTRIBUTE notes by name data.
* Automatic date update in version.inGDB Administrator2017-08-121-1/+1
|
* x86: Allocate space for symbol names with symbol tableH.J. Lu2017-08-113-84/+73
| | | | | | | | | | | When synthesizing symbols for PLT entries, allocate space for symbol names with @plt suffixes together with symbol table so that all memory is returned when symbol table is freed. PR binutils/21943 * elf32-i386.c (elf_i386_get_synthetic_symtab): Allocate space for @plt suffixes first. * elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise.
* Add -z globalaudit linker command line option to set the DF_GLOBALAUDIT flag ↵Nick Clifton2017-08-117-0/+36
| | | | | | | | | | | | | | | bit in the dynamic tags. * emultempl/elf32.em (handle_option): Accept the -z globalaudit command line option. * lexsup.c (elf_static_list_options): Add -z globalaudit. * ld.texinfo: Document the support for the new command line option. * NEWS: Mention the new feature. * testsuite/ld-elf/audit.exp: Add a test of the -z globalaudit command line option. * testsuite/ld-elf/globalaudit.rd: New file: Expected output from readelf.
* Add 2 more tests for PR ld/21884H.J. Lu2017-08-117-0/+52
| | | | | | | | | | PR ld/21884 * testsuite/ld-i386/i386.exp: Run pr21884. * testsuite/ld-x86-64/x86-64.exp: Likewise. * testsuite/ld-i386/pr21884.d: New file. * testsuite/ld-i386/pr21884.t: Likewise. * testsuite/ld-x86-64/pr21884.d: Likewise. * testsuite/ld-x86-64/pr21884.t: Likewise.
* Also disallow global alias of common symbolH.J. Lu2017-08-1114-4/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | We can't create alias of common symbol. Local alias of common symbol has been disallowed. But global alias of common symbol is disallowed when the common symbol is seen first and silently dropped otherwise. This patch disallows alias of common symbol in all cases. gas/ PR gas/21667 * read.c (pseudo_set): Update error message for alias of common symbol. * write.c (write_object_file): Disallow both local and global aliases of common symbol. * testsuite/gas/elf/common5a.d: New file. * testsuite/gas/elf/common5a.l: Likewise. * testsuite/gas/elf/common5a.s: Likewise. * testsuite/gas/elf/common5b.d: Likewise. * testsuite/gas/elf/common5b.l: Likewise. * testsuite/gas/elf/common5b.s: Likewise. * testsuite/gas/elf/common5c.d: Likewise. * testsuite/gas/elf/common5c.s: Likewise. * testsuite/gas/elf/common5d.d: Likewise. * testsuite/gas/elf/common5d.s: Likewise. * testsuite/gas/elf/elf.exp: Run common5a, common5b, common5c and common5d.
* More gdb/skip.c C++ificationPedro Alves2017-08-114-238/+243
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Make skiplist_entry a class with private data members. - Move all construction logic to the ctor. - Make skip_file_p etc be methods of skiplist_entry. - Use std::list for the skip entries chain. Make the list own its elements. - Get rid of the ALL_SKIPLIST_ENTRIES/ALL_SKIPLIST_ENTRIES_SAFE macros, use range-for / iterators instead. - function_name_is_marked_for_skip 'function_sal' argument must be non-NULL, so make it a reference instead. All skiplist_entry invariants are now controlled by skiplist_entry methods/internals. Some gdb_asserts disappear for being redundant. gdb/ChangeLog: 2017-08-11 Pedro Alves <palves@redhat.com> * infrun.c (process_event_stop_test): Adjust function_name_is_marked_for_skip call. * skip.c: Include <list>. (skiplist_entry): Make it a class with private fields, and getters/setters. (skiplist_entry_chain): Delete. (skiplist_entries): New. (skiplist_entry_count): Delete. (highest_skiplist_entry_num): New. (ALL_SKIPLIST_ENTRIES, ALL_SKIPLIST_ENTRIES_SAFE): Delete. (add_skiplist_entry): Delete. (skiplist_entry::skiplist_entry): New. (skiplist_entry::add_entry): New. (skip_file_command, skip_function): Adjust. (compile_skip_regexp): Delete. (skip_command): Don't compile regexp here. Adjust to use skiplist_entry::add_entry. (skip_info): Adjust to use range-for and getters. (skip_enable_command, skip_disable_command): Adjust to use range-for and setters. (skip_delete_command): Adjust to use std::list. (add_skiplist_entry): Delete. (skip_file_p): Delete, refactored as ... (skiplist_entry::do_skip_file_p): ... this new method. (skip_gfile_p): Delete, refactored as ... (skiplist_entry::do_gskip_file_p): ... this new method. (skip_function_p, skip_rfunction_p): Delete, refactored as ... (skiplist_entry::skip_function_p): ... this new method. (function_name_is_marked_for_skip): Now returns bool, and takes the function sal by const reference. Adjust to use range-for and skiplist_entry methods. (_initialize_step_skip): Remove references to skiplist_entry_chain, skiplist_entry_count. * skip.h (function_name_is_marked_for_skip): Now returns bool, and takes the function sal by const reference.
* Reset *THIS_CACHE in frame_unwind_try_unwinder in case of exceptionYao Qi2017-08-114-16/+17
| | | | | | | | | | | | | | | | | | | | | | It is required that unwinder->sniffer should set *this_cache to NULL if the unwinder is not applicable or exception is thrown, so 78ac5f831692f70b841044961069e50d4ba6a76f adds clear_pointer_cleanup to set *this_cache to NULL in case of exception in order to fix PR 14100. https://sourceware.org/ml/gdb-patches/2012-08/msg00075.html This patch removes that clear_pointer_cleanup, and catch all exception in the caller of unwinder->sniffer. In case of exception, reset *this_case. gdb: 2017-08-11 Yao Qi <yao.qi@linaro.org> * dwarf2-frame.c (clear_pointer_cleanup): Remove. (dwarf2_frame_cache): Remove reset_cache_cleanup. (dwarf2_frame_cache): * frame-unwind.c (frame_unwind_try_unwinder): Catch RETURN_MASK_ALL and set *this_case to NULL. * frame-unwind.h: Update comments.
* Class-fy dwarf2_frame_state_reg_infoYao Qi2017-08-114-95/+189
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds dwarf2_frame_state_reg_info ctor, dtor, copy ctor, assignment operator, and move assignment. This patch also adds unit test to execute_cfa_program to cover the changes. gdb: 2017-08-11 Yao Qi <yao.qi@linaro.org> * dwarf2-frame.c (dwarf2_frame_state_alloc_regs): Remove. (dwarf2_frame_state_copy_regs): Remove. (dwarf2_frame_state_free_regs): Remove. (dwarf2_frame_state::~dwarf2_frame_state): Remove. (dwarf2_restore_rule): Call method .alloc_regs instead of dwarf2_frame_state_alloc_regs. (execute_cfa_program): Likewise. Call dwarf2_frame_state_reg_info constructor. Call std::move. (dwarf2_fetch_cfa_info): Don't call dwarf2_frame_state_copy_regs. (dwarf2_frame_cache): Likewise. [GDB_SELF_TEST]: Include selftest.h and selftest-arch.h. [GDB_SELF_TEST] (execute_cfa_program_test): New function. (_initialize_dwarf2_frame) [GDB_SELF_TEST]: Register execute_cfa_program_test. * dwarf2-frame.h (dwarf2_frame_state_reg_info): Add ctor, dtor, copy ctor, assignment operator, move assignment. <alloc_regs>: New method. <swap>: New method. (struct dwarf2_frame_state): Delete dtor. (dwarf2_frame_state_alloc_regs): Remove declaration. * sparc-tdep.c (sparc_execute_dwarf_cfa_vendor_op): Don't call dwarf2_frame_state_alloc_regs, use .alloc_regs instead.
* Class-fy dwarf2_frame_stateYao Qi2017-08-113-66/+71
| | | | | | | | | | | | | | | | | | | | | This patch adds ctor and dtor to dwarf2_frame_state, so that we can remove one cleanup "old_chain". gdb: 2017-08-11 Yao Qi <yao.qi@linaro.org> * dwarf2-frame.c (dwarf2_frame_state_free): Remove. (dwarf2_frame_state::dwarf2_frame_state): New. (dwarf2_frame_state::~dwarf2_frame_state): New. (dwarf2_fetch_cfa_info): Update. (dwarf2_frame_cache): Remove old_chain. Change 'fs' to an object rather than a pointer. Update code. * dwarf2-frame.h (struct dwarf2_frame_state): Declare ctor and dtor. <data_align, code_align, retaddr_column>: Change them to const. <armcc_cfa_offsets_sf, armcc_cfa_offsets_reversed>: Change them to bool.
* Move dwarf2_frame_state_reg.exp_len to union .locYao Qi2017-08-113-10/+20
| | | | | | | | | | | | | | dwarf2_frame_state_reg.exp_len is only used together with .loc.exp, so it makes more sense to exp_len to the union as well. gdb: 2017-08-11 Yao Qi <yao.qi@linaro.org> * dwarf2-frame.h (struct dwarf2_frame_state_reg) <exp_len>: Remove. <loc.exp>: New field. * dwarf2-frame.c (execute_cfa_program): Update. (dwarf2_frame_prev_register): Update.
* Automatic date update in version.inGDB Administrator2017-08-111-1/+1
|
* Allow gdb::unique_xmalloc_ptr<T[]>Pedro Alves2017-08-102-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, if you try to use the array version of gdb::unique_xmalloc_ptr (i.e., std::unique_ptr) in order to have access to operator[], like: gdb::unique_xmalloc_ptr<char[]> buf ((char *) xmalloc (10)); return buf[0]; then the build fails, like: /usr/include/c++/5.3.1/bits/unique_ptr.h: In instantiation of ‘std::unique_ptr<_Tp [], _Dp>::~unique_ptr() [with _Tp = char; _Dp = gdb::xfree_deleter<char []>]’: main.c:30:61: required from here /usr/include/c++/5.3.1/bits/unique_ptr.h:484:17: error: no match for call to ‘(std::unique_ptr<char [], gdb::xfree_deleter<char []> >::deleter_type {aka gdb::xfree_deleter<char []>}) (char*&)’ get_deleter()(__ptr); ^ In file included from src/gdb/common/common-defs.h:92:0, from src/gdb/defs.h:28, from src/gdb/main.c:20: src/gdb/common/gdb_unique_ptr.h:34:8: note: candidate: void gdb::xfree_deleter<T>::operator()(T*) const [with T = char []] void operator() (T *ptr) const { xfree (ptr); } ^ src/gdb/common/gdb_unique_ptr.h:34:8: note: no known conversion for argument 1 from ‘char*’ to ‘char (*)[]’ Makefile:1911: recipe for target 'main.o' failed make: *** [main.o] Error 1 The problem is that we're missing an xfree_deleter specialization for arrays. gdb/ChangeLog: 2017-08-10 Pedro Alves <palves@redhat.com> * common/gdb_unique_ptr.h (xfree_deleter<T[]>): Define.
* Add support for PE startup files that want to define their own constructor ↵Nick Clifton2017-08-103-16/+43
| | | | | | | | | and desctructor sequencing. * scripttempl/pep.sc: Enclose __CTOR_LIST__, ___CTOR_LIST__, __DTOR_LIST__ and ___DTOR_LIST__ in PROVIDE statements so that they can be overrridden by crt input files. * scripttempl/pe.sc: Likewise.
* Fix memory corruption when assembling an i386 darwin source file.Nick Clifton2017-08-102-5/+24
| | | | | | | PR gas/21939 * config/obj-macho.c (obj_mach_o_set_indirect_symbols): Increase size of indirect_syms array so that it is large enough to hold every symbol if necessary.
* Fix out of bounds memory access when trying to allocate space for a note of ↵Nick Clifton2017-08-101-1/+1
| | | | | | | size -1. PR 21933 * elf.c (elf_read_notes): Check for a note size of -1.
* Automatic date update in version.inGDB Administrator2017-08-101-1/+1
|
* LD_CLASS: Check .libs/ld-new for linker firstH.J. Lu2017-08-092-1/+7
| | | | | | | | When --enable-shared is used, ./ld-new may be a shell script and the real linker is .libs/ld-new. We should check .libs/ld-new first. * testsuite/config/default.exp (LD_CLASS): Check .libs/ld-new for linker first.
* Replace home-grown linked-lists in FreeBSD's native target with STL lists.John Baldwin2017-08-092-50/+32
| | | | | | | | | | | | | | | | | FreeBSD's native target uses linked-lists to keep track of pending fork events and fake vfork done events. Replace the first list with std::list and the second with std::forward_list. gdb/ChangeLog: * fbsd-nat.c (struct fbsd_fork_info): Remove. (fbsd_pending_children): Use std::list. (fbsd_remember_child): Likewise. (fbsd_is_child_pending): Likewise. (fbsd_pending_vfork_done): Use std::forward_list. (fbsd_add_vfork_done): Likewise. (fbsd_is_vfork_done_pending): Likewise. (fbsd_next_vfork_done): Likewise.
* Replace remaining cleanups in fbsd-nat.c.John Baldwin2017-08-092-31/+36
| | | | | | | | | | | | | | | | | | - Use a custom deleter with std::unique_ptr to free() memory returned by kinfo_getvmmap(). - Use std::string with string_printf() to generate the pathname of the procfs 'map' file. - Use gdb::byte_vector to manage the dynamic buffer for TARGET_OBJECT_AUXV and the dynamically allocated array of LWP IDs. gdb/ChangeLog: * fbsd-nat.c [HAVE_KINFO_GETVMMAP] (struct free_deleter): New. (fbsd_find_memory_regions): Use free_deleter with std::unique_ptr. [!HAVE_KINFO_GETVMMAP] (fbsd_find_memory_regions): Use std::string for `mapfilename'. (fbsd_xfer_partial): Use gdb::byte_vector. (fbsd_add_threads): Likewise.
* Fix compile in the !HAVE_KINFO_GETVMMAP case.John Baldwin2017-08-092-2/+10
| | | | | | | | gdb/ChangeLog: * fbsd-nat.c: [!HAVE_KINFO_GETVMMAP]: Include <sys/user.h> and "filestuff.h". (fbsd_find_memory_regions): Fix `mapfile' initialization.
* Run PR ld/17618 test only with 64-bit ELF linkerH.J. Lu2017-08-094-2/+23
| | | | | | | | | | | | | PR ld/17618 test requires 64-bit linker to run. Set LD_CLASS to "64bit" for 64-bit ELF linker and run PR ld/17618 test only if $LD_CLASS is "64bit". More checks can be added to support 64-bit linkers in non-ELF format. * testsuite/config/default.exp (LD_CLASS): New. Set to "64bit" for 64-bit ELF linker. * testsuite/ld-x86-64/pr17618.d (#notarget): Removed. * testsuite/ld-x86-64/x86-64.exp: Run pr17618 only for 64-bit linker.