- Apr 15, 2021
-
-
Alan Modra authored
More fallout from the PR27456 fixes. PR 27456 * rename.c (smart_rename): When TO and FROM are equal, just set file timestamp. * objcopy.c (strip_main, copy_main): Always call smart_rename.
-
Nelson Chu authored
The local ".L0" symbol are usually generated to mark where the auipc instruction is, and clang also uses ".LBB" to do the same thing. Besides, clang also uses the empty name symbols for label differences. Arm surpress their mapping symbols by regarding them as special symbols, and MIPS surpress all local symbols. Therefore, RISC-V probably need to surpress the local and empty name symbols for nm and related tools. User can use "--special-syms" to show these surpressed symbols. bfd/ PR27584 * elfnn-riscv.c (riscv_elf_is_target_special_symbol): Added to omit local and empty symbols since they usually generated to mark the auipc instructions. -
Lifang Xia authored
The special_function for reloc should be 'bfd_elf_generic_reloc', reloc list: R_CKCORE_PCREL_IMM16BY2, R_CKCORE_PCREL_IMM16BY4, R_CKCORE_PCREL_IMM10BY4, R_CKCORE_PCREL_IMM18BY2, R_CKCORE_PCREL_FLRW_IMM8BY4 bfd/ * elf32-csky.c (csky_elf_howto_table) <R_CKCORE_PCREL_IMM16BY2>: Set special_function to bfd_elf_generic_reloc. <R_CKCORE_PCREL_IMM16BY4>: Likewise. <R_CKCORE_PCREL_IMM10BY4>: Likewise. <R_CKCORE_PCREL_IMM18BY2>: Likewise. <R_CKCORE_PCREL_FLRW_IMM8BY4>: Likewise.
-
GDB Administrator authored
-
Tankut Baris Aktemur authored
gdb/testsuite/ChangeLog: 2021-04-14 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> * gdb.dwarf2/dw2-inline-with-lexical-scope.exp: Use @DW_INL_declared_inlined for the inline attribute.
-
Tankut Baris Aktemur authored
GDB reports duplicate local vars with "<optimized out>" values for inlined functions that are compiled with Clang. Suppose we have __attribute__((always_inline)) static void aFunction() { int a = 42; if(a > 2) { int value = a; value += 10; /* break here */ } } The "info locals" command at the "break here" line gives the following output: ... Breakpoint 1, aFunction () at test.c:6 6 value += 10; /* break here */ (gdb) info locals value = 42 a = 42 value = <optimized out> (gdb) The reason is, inlined functions that are compiled by Clang do not contain DW_AT_abstract_origin attributes in the DW_TAG_lexical_block entries. See https://bugs.llvm.org/show_bug.cgi?id=49953 E.g. the DIE of the inlined function above is 0x00000087: DW_TAG_inlined_subroutine DW_AT_abstract_origin (0x0000002a "aFunction") DW_AT_low_pc (0x00000000004004b2) DW_AT_high_pc (0x00000000004004d2) DW_AT_call_file ("/tmp/test.c") DW_AT_call_line (11) DW_AT_call_column (0x03) 0x0000009b: DW_TAG_variable DW_AT_location (DW_OP_fbreg -4) DW_AT_abstract_origin (0x00000032 "a") 0x000000a3: DW_TAG_lexical_block DW_AT_low_pc (0x00000000004004c3) DW_AT_high_pc (0x00000000004004d2) 0x000000b0: DW_TAG_variable DW_AT_location (DW_OP_fbreg -8) DW_AT_abstract_origin (0x0000003e "value") This causes GDB to fail matching the concrete lexical scope with the corresponding abstract entry. Hence, the local vars of the abstract function that are contained in the lexical scope are read separately (and thus, in addition to) the local vars of the concrete scope. Because the abstract definitions of the vars do not contain location information, we see the extra 'value = <optimized out>' above. This bug is highly related to PR gdb/25695, but the root cause is not exactly the same. In PR gdb/25695, GCC emits an extra DW_TAG_lexical_block without an DW_AT_abstract_origin that wraps the body of the inlined function. That is, the trees of the abstract DIE for the function and its concrete instance are structurally not the same. In the case of using Clang, the trees have the same structure. To tackle the Clang case, when traversing the children of the concrete instance root, keep a reference to the child of the abstract DIE that corresponds to the concrete child, so that we can match the two DIEs heuristically in case of missing DW_AT_abstract_origin attributes. The updated gdb.opt/inline-locals.exp test has been checked with GCC 5-10 and Clang 5-11. gdb/ChangeLog: 2021-04-14 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> * dwarf2/read.c (inherit_abstract_dies): Keep a reference to the corresponding child of the abstract DIE when iterating the children of the concrete DIE. gdb/testsuite/ChangeLog: 2021-04-14 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> * gdb.opt/inline-locals.c (scoped): New function. (main): Call 'scoped'. * gdb.opt/inline-locals.exp: Update with "info locals" tests for scoped variables. * gdb.dwarf2/dw2-inline-with-lexical-scope.c: New file. * gdb.dwarf2/dw2-inline-with-lexical-scope.exp: New file.
-
- Apr 14, 2021
-
-
Andrew Burgess authored
While reading the manual for -info-os I noticed that the GDB prompt is given as 'gdb' when it should really be '(gdb)'. This is because the prompt is created with: '@value{GDBP}'. The GDBP variable (the GDB program name) is intended for use as the prompt string (though this is not used consistently throughout the manual), however it is normally used like '(@value{GDBP})', but in a couple of places the enclosing parentheses are missing. In this commit I do the following: - Change '@value{GDBP}' to '(@value{GDBP})' wherever the variable represents a prompt string. - Replaces '(gdb)' with '(@value{GDBP})' in one example where we are already using '(@value{GDBP})', this makes that one example consistent. I have NOT: - Changed all instances of '(gdb)' with '(@value{GDBP})', this would be a huge change. gdb/doc/ChangeLog: * gdb.texinfo (GDB/MI Miscellaneous Commands): Add missing parentheses to GDB prompt in example, and replace '(gdb)' with '(@value{GDBP})' in one example where the latter was already in use. -
Tom Tromey authored
This removes the one last use of _WIN32_WCE from gdbserver. gdbserver/ChangeLog 2021-04-14 Tom Tromey <tromey@adacore.com> * win32-low.cc (windows_nat::handle_load_dll): Don't check _WIN32_WCE.
-
H.J. Lu authored
Since p_memsz of the loadable PT_NOTE segment should be the same as p_filesz, set p_memsz on the loadable PT_NOTE segment when updating p_filesz. bfd/ PR binutils/27708 * elf.c (assign_file_positions_for_non_load_sections): Set p_memsz to p_filesz for the loadable PT_NOTE segment. binutils/ PR binutils/27708 * testsuite/binutils-all/x86-64/pr27708.dump: New file. * testsuite/binutils-all/x86-64/pr27708.exe.bz2: Likewise. * testsuite/binutils-all/x86-64/x86-64.exp: Run binutils/27708 test.
-
Mark Harmstone authored
PR 27686 * resbin.c (bin_to_res_version): Ignore any trailing bytes at the end of the structure.
-
Tankut Baris Aktemur authored
gdb/testsuite/ChangeLog: 2021-04-14 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> * lib/dwarf.exp (_location): Recognize DW_OP_fbreg as an op.
-
Frederic Cambus authored
binutils* readelf.c (get_netbsd_elfcore_note_type): Remove unneeded #ifdef checks for NT_NETBSDCORE_AUXV and NT_NETBSDCORE_LWPSTATUS. bfd * elf.c (elfcore_grok_netbsd_note): Remove unneeded #ifdef checks for NT_NETBSDCORE_AUXV and NT_NETBSDCORE_LWPSTATUS.
-
Alan Modra authored
PR 27631 * elf32-metag.c (elf_metag_relocate_section): Don't use &hh->elf when hh might be NULL, test for NULL first.
-
Alan Modra authored
PR 27630 * elf32-arm.c (elf32_arm_size_stubs): Don't use &hash->root when hash might be NULL, cast instead.
-
Alan Modra authored
We shouldn't be using arbitrary limits like PATH_MAX in GNU programs. This patch also fixes some memory leaks in readelf when processing separate debug info. PR 27716 binutils/ * objdump.c (show_line): Don't limit paths to PATH_MAX. * readelf.c (struct filedata): Change program_interpreter from a char array to a char pointer. (process_program_headers): Sanity check PT_INTERP p_filesz. Malloc program_interpreter using p_filesz and read directly from file. (process_dynamic_section): Check program_interpreter is non-NULL. (free_filedata): New function, split out from.. (process_object): ..here. (close_debug_file): Call free_filedata. * sysdep.h: Don't include sys/param.h. (PATH_MAX): Don't define. * configure.ac: Don't check for sys/param.h. * configure: Regenerate. gprof/ * gprof.h (PATH_MAX): Don't define. * corefile.c (core_create_line_syms): Don't use PATH_MAX for initial file name size. * source.c (annotate_source): Malloc file name buffer. Always trim off "-ann" when dos 8.3 annotate file matches original. * utils.c (print_name_only): Malloc file name buffer.
-
Alan Modra authored
Let's make sure what we allow in the CIE initial instructions and what select_cie_for_fde compares for a match is always in sync. Also correct the previous patch that allowed DW_CFA_GNU_window_save to be part of the CIE initial instructions, which was likely a mistake. PR 27723 * dw2gencfi.c (initial_cie_insn): New function, extracted from.. (select_cie_for_fde): ..here. Simplify.
-
GDB Administrator authored
-
Alan Modra authored
PR 27723 * dw2gencfi.c (select_cie_for_fde): Handle DW_CFA_val_offset, DW_CFA_GNU_window_save and DW_CFA_restore_state.
-
Pedro Alves authored
gdbserver/ChangeLog: * gdbreplay.c [__MINGW32CE__] (COUNTOF, errno, strerror): Remove.
-
Tom Tromey authored
I noticed that gdbserver/win32-low.cc has a few typedefs that are not used. This patch removes them. gdbserver/ChangeLog 2021-04-13 Tom Tromey <tromey@adacore.com> * win32-low.cc (winapi_CreateToolhelp32Snapshot) (winapi_Module32First, winapi_Module32Next): Remove typedefs.
-
- Apr 13, 2021
-
-
Tom de Vries authored
I did an experiment with importing the regex module in gnulib, and trying to build gdb. The first problem I ran into was that: - regoff_t was defined as long int, and - the address of a regoff_t variable i in ui_file_style::parse was passed as int * to function extended_color. Fix this by changing the types of some function parameters of functions read_semi_number and extended_color from int * to regoff_t *. Tested on x86_64-linux. gdb/ChangeLog: 2021-04-13 Tom de Vries <tdevries@suse.de> * ui-style.c (read_semi_number, extended_color): Change idx parameter type to regoff_t *.
-
Luis Machado authored
Replace use of %lx with %s. gdb/ChangeLog: 2021-04-13 Luis Machado <luis.machado@linaro.org> * rs6000-tdep.c (ppc_displaced_step_fixup): Use %s to print hex values.
-
Nick Clifton authored
* ld.texi (Options): Add note about the effect of --as-needed on the --rpath and --rpath-link options on Linux based systems.
-
Pedro Alves authored
Now that the WinCE port is gone, all ports map host I/O errors from errno, so this abstraction is no longer necessary. Basically undoes: https://sourceware.org/pipermail/gdb-patches/2008-January/055511.html https://sourceware.org/pipermail/gdb-patches/attachments/20080131/f44e7012/attachment.bin gdbserver/ChangeLog: * Makefile.in (SFILES): Remove hostio-errno.cc. * configure: Regenerate. * configure.ac (GDBSERVER_DEPFILES): No longer add $srv_hostio_err_objs. * configure.srv (srv_hostio_err_objs): Delete. * hostio-errno.cc: Delete. * hostio.cc (hostio_error): Inline hostio_last_error_from_errno here. * hostio.h (hostio_last_error_from_errno): Delete. * target.cc (process_stratum_target::hostio_last_error): Delete. * target.h (class process_stratum_target) <hostio_last_error>: Delete.
-
Clément Chigot authored
git commit b95a0a31 changed a "return FALSE" to "continue", and missed updating the while loop iterator. * xcofflink.c (xcoff_link_check_ar_symbols): Update esym earlier.
-
Alan Modra authored
PR 27722 * libdep_plugin.c (str2vec): Don't pass a potentially signed char to isspace.
-
Frederic Cambus authored
NT_NETBSD_PAX was defined in commit be3b926d. binutils/ChangeLog: * readelf.c (process_netbsd_elf_note): Remove now unneeded #ifdef check for NT_NETBSD_PAX.
-
Nelson Chu authored
bfd/ * elfnn-riscv.c (riscv_version_mismatch): Do not report the warning when the version of input or output is RISCV_UNKNOWN_VERSION, since the extension is added implicitly. * elfxx-riscv.c: Updated the obsolete comments. (RISCV_UNKNOWN_VERSION): Moved to elfxx-riscv.h. * elfxx-riscv.h (RISCV_UNKNOWN_VERSION): Added. -
GDB Administrator authored
-
Will Schmidt authored
Hi, This test exercise updates to the F* and VS* registers and verifies updates to the same. Note that the registers overlap; the doubleword[1] portion of any VS0-VS31 register contains the F0-F31 register contents, so any updates to one can be measured in the other. Per a brief investigation, we see that dl_main() currently uses some VSX instructions, so the VS* values are not going to be zero when this testcase reaches main, where these tests begin. The test harness does not explicitly initialize the full VS* values, so the first test loop that updates the F* values means our VS* values are uninitalized and will fail the first set of checks. This update explicitly initializes the doubleword[0] portion of the VS* registers, to allow this test to succeed. 2021-04-12 Will Schmidt <will_schmidt@vnet.ibm.com> gdb/testsuite/ChangeLog: * gdb.arch/vsx-regs.exp: Initialize vs* doublewords. -
Will Schmidt authored
Hi, This is based on a patch originally written by Alan Modra. Powerpc / Power10 ISA 3.1 adds prefixed instructions, which are 8 bytes in length. This is in contrast to powerpc previously always having 4 byte instruction length. This patch implements changes to allow GDB to better detect prefixed instructions, and handle single stepping across the 8 byte instructions. Added #defines to help test for PNOP and prefix instructions. Update ppc_displaced_step_copy_insn() to handle pnop and prefixed instructions whem R=0 (non-pc-relative). Updated ppc_displaced_step_fixup() to properly handle the offset value matching the current instruction size Updated the for-loop within ppc_deal_with_atomic_sequence() to count instructions properly in case we have a mix of 4-byte and 8-byte instructions within the atomic_sequence_length. Added testcase and harness to exercise pc-relative load/store instructions with R=0. 2021-04-12 Will Schmidt <will_schmidt@vnet.ibm.com> gdb/ChangeLog: * rs6000-tdep.c: Add support for single-stepping of prefixed instructions. gdb/testsuite/ChangeLog: * gdb.arch/powerpc-plxv-nonrel.s: Testcase using non-relative plxv instructions. * gdb.arch/powerpc-plxv-nonrel.exp: Testcase harness. -
Will Schmidt authored
This addresses PR gdb/27525. The lnia and other variations of the addpcis instruction write the value of the NIA into a target register. If we are single-stepping across a breakpoint, the instruction is executed from a displaced location, and thusly the written value of the PC/NIA will be incorrect. The changes here will measure the displacement offset, and adjust the target register value to compensate. YYYY-MM-DD Will Schmidt <will_schmidt@vnet.ibm.com> gdb/ChangeLog: * rs6000-tdep.c (ppc_displaced_step_fixup): Update to handle the addpcis/lnia instruction. gdb/testsuite/ChangeLog: * gdb.arch/powerpc-addpcis.exp: Testcase harness to exercise single-stepping over subpcis,lnia,addpcis instructions with displacement. * gdb.arch/powerpc-addpcis.s: Testcase with stream of addpcis/lnia/subpcis instructions. * gdb.arch/powerpc-lnia.exp: Testcase harness to exercise single-stepping over lnia instructions with displacement. * gdb.arch/powerpc-lnia.s: Testcase with stream of lnia instructions. -
Will Schmidt authored
Inspired by the existing powerpc-power9.exp test, this is a new test to cover the power10 instruction disassembly. gdb/testsuite/ChangeLog: 2021-04-12 Will Schmidt <will_schmidt@vnet.ibm.com> * gdb.arch/powerpc-power10.s: New test for instructions. * gdb.arch/powerpc-power10.exp: Harness to run the test.
-
Will Schmidt authored
gdb/ChangeLog: * MAINTAINERS (Write After Approval): Add myself.
-
- Apr 12, 2021
-
-
Alan Modra authored
Writing to a potentially read-only source directory is not good. * testsuite/gas/m68hc11/m68hc11.exp (gas_m68hc11_message): Don't write to $srcdir. Use gas_host_run and read output file rather than gas_start/gas_finish.
-
Carl Love authored
This patch adds a floating point 128-bit composite field to the vsx register type. When printing the register with p/f the float128 field will be printed as a 128-bit floating point value. A test case to verify the new vsx register field is visible and correctly prints out the value of a 128-bit floating point value is also added. gdb/ChangeLog: * rs6000-tdep.c (rs6000_builtin_type_vec128): Add t_float128 variable. (rs6000_builtin_type_vec128): Add append_composite_type_field for float128. gdb/testsuite/ChangeLog: * gdb.arch/vsx-vsr-float128.c: New test file. * gdb.arch/vsx-vsr-float128.exp: New expect file.
-
Simon Marchi authored
The support for WinCE was removed with commit 84b300de ("gdbserver: remove support for ARM/WinCE"). There is some leftover code for WinCE support, guarded by the _WIN32_WCE macro, which I didn't know of at the time. I didn't remove the _WIN32_WCE references in the tests, because in theory we still support the WinCE architecture in GDB (when debugging remotely). So someone could run a test with that (although I'd be really surprised). gdb/ChangeLog: * nat/windows-nat.c: Remove all code guarded by _WIN32_WCE. * nat/windows-nat.h: Likewise. gdbserver/ChangeLog: * win32-low.cc: Remove all code guarded by _WIN32_WCE. * win32-low.h: Likewise. Change-Id: I7a871b897e2135dc195b10690bff2a01d9fac05a
-
Alan Modra authored
gas already has this. Here it enables checking hash table type passed to elf_link_hash_lookup and elf_link_hash_traverse. bfd/ * elf-bfd.h (ENABLE_CHECKING): Define. (elf_link_hash_lookup): Abort if wrong type of hash table. (elf_link_hash_traverse): Likewise. * configure.ac (--enable-checking): Add support. * config.in: Regenerate. * configure: Regenerate. binutils/ * configure.ac (--enable-checking): Add support. * config.in: Regenerate. * configure: Regenerate. ld/ * configure.ac (--enable-checking): Add support. * config.in: Regenerate. * configure: Regenerate. opcodes/ * configure.ac (--enable-checking): Add support. * config.in: Regenerate. * configure: Regenerate.
-
Tankut Baris Aktemur authored
gdbserver/ChangeLog: 2021-04-12 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> * target.h (class process_stratum_target) <pid_to_exec_file>: Constify the return type. Update the definition/references below. * target.cc (process_stratum_target::pid_to_exec_file) * linux-low.h (class linux_process_target) <pid_to_exec_file> * linux-low.cc (linux_process_target::pid_to_exec_file) * netbsd-low.h (class netbsd_process_target) <pid_to_exec_file> * netbsd-low.cc (netbsd_process_target::pid_to_exec_file) * server.cc (handle_qxfer_exec_file)
-
Markus Metzger authored
In gdb.btrace/reconnect.exp, we test that we can disconnect and reconnect again to a GDB session that is recording with the btrace recording format. It does not really matter what we are recording. The test assumed that stepping from _start will bring us into an area without debug information. This is not correct on all systems. Relax the expected output to also support systems where we do have debug information for that code.
-