aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2021-02-16Automatic date update in version.inGDB Administrator1-1/+1
2021-02-15IBM Z: Implement instruction set extensionsAndreas Krebbel11-3/+111
opcodes/ * s390-mkopc.c (main): Accept arch14 as cpu string. * s390-opc.txt: Add new arch14 instructions. include/ * opcode/s390.h (enum s390_opcode_cpu_val): Add S390_OPCODE_ARCH14. gas/ * config/tc-s390.c (s390_parse_cpu): New entry for arch14. * doc/c-s390.texi: Document arch14 march option. * testsuite/gas/s390/s390.exp: Run the arch14 related tests. * testsuite/gas/s390/zarch-arch14.d: New test. * testsuite/gas/s390/zarch-arch14.s: New test.
2021-02-15bfd: use $(LN_S) in favor of "cp -p" when populating pre-built *.texiJan Beulich3-44/+49
"cp -p" has been observed to fail on Cygwin when the build tree is on a local drive but the sources are on a Samba share. We don't really need full copies of the files here - symlinks suffice.
2021-02-15objdump: don't cache section contents in load_specific_debug_sectionAlan Modra5-61/+44
* objdump.c (load_specific_debug_section): Don't call bfd_cache_section_contents. Rearrange so that bfd_get_full_section_contents is not called on path where bfd_simple_get_relocated_section_contents is called. Don't set section->user_data. (free_debug_section): Always free section->start. Don't twiddle section flags. * readelf.c (load_specific_debug_section): Don't set user_data. * dwarf.h (struct dwarf_section): Remove use_data field. * dwarf.c (NO_ABBREVS, ABBREV): Adjust to suit.
2021-02-15nds32_elf_get_relocated_section_contentsAlan Modra5-6/+17
nds32_elf_get_relocated_section_contents uses nds32_get_section_contents to read sections contents, but nds32_get_section_contents has the wrong behaviour as it calls bfd_malloc_and_get_section. That function always mallocs its output buffer, whereas get_relocated_section_contents must support an already allocated buffer. bfd/ * elf32-nds32.c (nds32_get_section_contents): Replace bfd_malloc_and_get_section with bfd_get_full_section_contents. (nds32_elf_relax_delete_blanks): Init contents. (nds32_elf_relax_section, nds32_relax_fp_as_gp): Likewise. binutils/ * testsuite/binutils-all/compress.exp: Remove nds32 xfails. * testsuite/binutils-all/objdump.exp: Likewise.
2021-02-15alpha_ecoff_get_relocated_section_contentsAlan Modra2-10/+21
Use bfd_get_full_section_contents and tidy the start of this function to match current generic get_relocated_section_contents. * coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Use bfd_get_full_section_contents.
2021-02-15Automatic date update in version.inGDB Administrator1-1/+1
2021-02-14Modernise _bfd_elf_mips_get_relocated_section_contentsAlan Modra2-21/+99
In particular, bfd_get_full_section_contents rather than bfd_get_section_contents so that compressed sections are handled properly. Necessary for mips if objdump is to not cache debug sections. * elfxx-mips.c (_bfd_elf_mips_get_relocated_section_contents): Apply all fixes to bfd_generic_get_relocated_section_contents since this function was split out.
2021-02-14objdump: don't add an extra entry to syms arrayAlan Modra2-28/+32
Space for a NULL is there in every backend bfd_get_symtab_upper_bound or bfd_get_dynamic_symtab_upper_bound when the symbol count is non-zero, and placed as a terminator by bfd_canonicalize_symtab. Many backends even return a single NULL entry array for zero symbol count, and while there are a few that return a NULL array for no symbols, that case is handled fine in objdump. So don't have objdump add yet another NULL entry. * objdump.c (slurp_symtab): Don't add an extra entry for NULL to the symbol array. (slurp_dynamic_symtab): Likewise. (dump_bfd): Formatting. Copy terminating NULL from extra_syms.
2021-02-14Regen for binutils/aclocal.m4 changeAlan Modra3-2/+9
* Makefile.in: Regenerate. * doc/Makefile.in: Regenerate.
2021-02-14ld testsuite: change unresolved to unsupported/failAlan Modra43-209/+220
"unresolved" as a test result means runtest returns an error, which can be confusing when there is no apparent error unless you look in .log files. In particular many tests are skipped without reporting an error if no target C compiler is found, but if a target C compiler is found but won't compile a testcase for some reason we used to mark the test as unresolved. Which is no more worthy of an error than when lacking a C compiler entirely. * testsuite/ld-cdtest/cdtest.exp, * testsuite/ld-checks/checks.exp, * testsuite/ld-elf/binutils.exp, * testsuite/ld-elf/compress.exp, * testsuite/ld-elf/dwarf.exp, * testsuite/ld-elf/exclude.exp, * testsuite/ld-elf/frame.exp, * testsuite/ld-elf/indirect.exp, * testsuite/ld-elf/linux-x86.exp, * testsuite/ld-elf/sec-to-seg.exp, * testsuite/ld-elf/tls_common.exp, * testsuite/ld-elfcomm/elfcomm.exp, * testsuite/ld-elfvers/vers.exp, * testsuite/ld-elfvsb/elfvsb.exp, * testsuite/ld-elfweak/elfweak.exp, * testsuite/ld-ifunc/binutils.exp, * testsuite/ld-mips-elf/mips-elf-flags.exp, * testsuite/ld-misc/defsym.exp, * testsuite/ld-mn10300/mn10300.exp, * testsuite/ld-plugin/lto.exp, * testsuite/ld-plugin/plugin.exp, * testsuite/ld-scripts/align.exp, * testsuite/ld-scripts/assert.exp, * testsuite/ld-scripts/crossref.exp, * testsuite/ld-scripts/defined.exp, * testsuite/ld-scripts/extern.exp, * testsuite/ld-scripts/log2.exp, * testsuite/ld-scripts/map-address.exp, * testsuite/ld-scripts/phdrs.exp, * testsuite/ld-scripts/phdrs2.exp, * testsuite/ld-scripts/script.exp, * testsuite/ld-scripts/section-flags.exp, * testsuite/ld-scripts/sizeof.exp, * testsuite/ld-scripts/weak.exp, * testsuite/ld-selective/selective.exp, * testsuite/ld-sh/sh.exp, * testsuite/ld-shared/shared.exp, * testsuite/ld-srec/srec.exp, * testsuite/ld-tic6x/tic6x.exp, * testsuite/ld-undefined/undefined.exp, * testsuite/ld-undefined/weak-undef.exp, * testsuite/lib/ld-lib.exp: Don't use unresolved except after perror. Instead report "unsupported" or "fail".
2021-02-14Automatic date update in version.inGDB Administrator1-1/+1
2021-02-13sim: testsuite: push $arch out to targetsMike Frysinger73-45/+274
This is needed to move to automake & its dejagnu-provided logic, and eventually by the unified sim logic. The $arch is used only to figure out which `run` program to use when running tests, and as we move to a single top-level build, we can delete this and use sim/run directly.
2021-02-13sim: rx: mitigate fread warningMike Frysinger2-2/+8
Current toolchains warn about unused result from fread, so mitigate the edge case if fread returns short data. It's not great, but it gets things building again.
2021-02-13sim: switch to AC_CONFIG_MACRO_DIRSMike Frysinger132-58741/+1168
Rather than hand maintain m4 includes in various autotool files, use AC_CONFIG_MACRO_DIRS to declare the relevant search paths. This simplifies the code, makes it more robust, and cleans out unused logic from configure.
2021-02-13sim: common: delete unused aclocal.m4Mike Frysinger2-15/+4
This was missed when we deleted the common/configure build logic.
2021-02-13config/debuginfod: do not include pkg.m4 directlyMike Frysinger6-3/+14
Any code using AC_DEBUGINFOD from this dir is using -I../config when running aclocal, so an explicit include on pkg.m4 is unnecessary: aclocal will find the pkg.m4 in this dir just as easily. This is seen in the only two dirs that use AC_DEBUGINFOD (binutils & gdb) as their aclocal.m4 already has m4_include on config m4 files. The include as written only works if aclocal is run on a dir that is at the same level of config/. Any other depth will fail. ./ |-- config/ |-- binutils/ # works |-- gdb/ # works `-- sim/ # works `-- <port>/ # fails It fails even if AC_DEBUGINFOD itself isn't used: sim/bfin/ $ aclocal -I../../config aclocal-1.15: error: ../../config/debuginfod.m4:8: file '../config/pkg.m4' does not exist
2021-02-13Automatic date update in version.inGDB Administrator1-1/+1
2021-02-12Add stdio support to gdbreplayTom Tromey2-21/+45
I've been using gdbreplay to help debug an intermittent failure, and I wanted it to be a little simpler to use. This patch adds support for "-" as the "address" argument. With this patch you can do: (gdb) target remote | gdbreplay logfile - ... and not have to start gdbreplay in a separate shell. 2021-02-12 Tom Tromey <tromey@adacore.com> * gdbreplay.cc (remote_desc): Remove. (remote_desc_in, remote_desc_out): New globals. (remote_close): Update. (remote_open): Handle "-". (remote_open): Update. (logchar): Log to stderr. (expect, play): Update.
2021-02-12[gdb/threads] Fix lin_thread_get_thread_signals for glibc 2.28Tom de Vries4-27/+40
When running test-case gdb.threads/create-fail.exp on openSUSE Factory (with glibc version 2.32) I run into: ... (gdb) continue Continuing. [New Thread 0x7ffff7c83700 (LWP 626354)] [New Thread 0x7ffff7482700 (LWP 626355)] [Thread 0x7ffff7c83700 (LWP 626354) exited] [New Thread 0x7ffff6c81700 (LWP 626356)] [Thread 0x7ffff7482700 (LWP 626355) exited] [New Thread 0x7ffff6480700 (LWP 626357)] [Thread 0x7ffff6c81700 (LWP 626356) exited] [New Thread 0x7ffff5c7f700 (LWP 626358)] [Thread 0x7ffff6480700 (LWP 626357) exited] pthread_create: 22: Invalid argument Thread 6 "create-fail" received signal SIG32, Real-time event 32. [Switching to Thread 0x7ffff5c7f700 (LWP 626358)] 0x00007ffff7d87695 in clone () from /lib64/libc.so.6 (gdb) FAIL: gdb.threads/create-fail.exp: iteration 1: run till end ... The problem is that glibc-internal signal SIGCANCEL is not recognized by gdb. There's code in check_thread_signals that is supposed to take care of that, but it's not working because this code in lin_thread_get_thread_signals has stopped working: ... /* NPTL reserves the first two RT signals, but does not provide any way for the debugger to query the signal numbers - fortunately they don't change. */ sigaddset (set, __SIGRTMIN); sigaddset (set, __SIGRTMIN + 1); ... Since glibc commit d2dc5467c6 "Filter out NPTL internal signals (BZ #22391)" (first released as part of glibc 2.28), a sigaddset with a glibc-internal signal has no other effect than setting errno to EINVALID. Fix this by eliminating the usage of sigset_t in check_thread_signals and lin_thread_get_thread_signals. The same problem was observed on Ubuntu 20.04. Tested on x86_64-linux, openSUSE Factory. Tested on aarch64-linux, Ubuntu 20.04 and Ubuntu 18.04. gdb/ChangeLog: 2021-02-12 Tom de Vries <tdevries@suse.de> PR threads/26228 * linux-nat.c (lin_thread_get_thread_signals): Remove. (lin_thread_signals): New static var. (lin_thread_get_thread_signal_num, lin_thread_get_thread_signal): New function. * linux-nat.h (lin_thread_get_thread_signals): Remove. (lin_thread_get_thread_signal_num, lin_thread_get_thread_signal): Declare. * linux-thread-db.c (check_thread_signals): Use lin_thread_get_thread_signal_num and lin_thread_get_thread_signal.
2021-02-12Minor constification in gdbreplayTom Tromey2-2/+6
I noticed a spot in gdbreplay where "const" could be used. 2021-02-12 Tom Tromey <tromey@adacore.com> * gdbreplay.cc (remote_open): Constify.
2021-02-12Change the readelf and objdump programs so that they will automatically ↵Nick Clifton18-47/+183
follow links to separate debug info files. * configure.ac (follow-debug-links): Add option to enable or disable the following of debug links by default. Set the default for the option to be 'follow'. * dwarf.c (do_follow_links): Initialise with DEFAULT_FOR_FOLLOW_LINKS. (dwarf_select_sections_by_names): Add no-follow-links option. (dwarf_select_sections_by_letter): Add 'N' option. * objdump.c (usage): Add conditional text describing the follow links option. (slurp_symtab): Ensure that there is a NULL entry at the end of the symbol table. (slurp_dynamic_symtab): Likewise. (dump_bfd): When extending the symbol table, ensure that there is still a NULL entry at the end. * readelf.c (usage): Add conditional text describing the follow links option. * doc/binutils.texi: Update documentation for objcopy and readelf. * doc/debug.options.texi: Update documentation of the follow-links option. * config.in: Regenerate. * configure: Regenerate. * testsuite/binutils-all/compress.exp: Add the -WN option to objdump command lines that are not expecting to follow links. * testsuite/binutils-all/readelf.exp: Add the --debug-dump=no-follow-links option to tests that are not expecting to follow debug links. gas * testsuite/gas/mach-o/sections-1.d: Stop automatic debug link following. * testsuite/gas/xgate/insns-dwarf2.d: Likewise. ld * testsuite/ld-elf/sec64k.exp: Stop readelf from automatically following debug links.
2021-02-12gdb/fortran: support ALLOCATED builtinAndrew Burgess7-0/+136
Add support for the ALLOCATED keyword to the Fortran expression parser. gdb/ChangeLog: * f-exp.y (f77_keywords): Add allocated. * f-lang.c (evaluate_subexp_f): Handle UNOP_FORTRAN_ALLOCATED. (operator_length_f): Likewise. (print_subexp_f): Likewise. (dump_subexp_body_f): Likewise. (operator_check_f): Likewise. * std-operator.def (UNOP_FORTRAN_ALLOCATED): New operator. gdb/testsuite/ChangeLog: * gdb.fortran/allocated.exp: New file. * gdb.fortran/allocated.f90: New file.
2021-02-12binutils testsuite: replace unresolved with unsupportedAlan Modra5-40/+50
You'd think "unresolved" would be correct for an objcopy test when the assembler refuses to assemble one of our source files. After all, the test of objcopy hasn't been run. However, "unresolved" results in runtest returning with an error status. If instead we report "unsupported", runtest returns success. Which is a little less confusing to a user who doesn't see any errors reported unless they look in log files. * testsuite/binutils-all/objcopy.exp: Report "unsupported" when gas or ld fails to build a testcase rather than "unresolved". Report "fail" when readelf returns an error status rather than "unresolved". * testsuite/binutils-all/ar.exp: Likewise. * testsuite/binutils-all/compress.exp: Likewise. * testsuite/binutils-all/readelf.exp: Likewise.
2021-02-12binutils test pr25662: don't use single character labelsAlan Modra2-2/+7
This fixes the test for z80, which predefine register symbols "a" and "c" among others. * testsuite/binutils-all/pr25662.s: Replace "a" with "aaa" and "c" with "ccc" labels.
2021-02-12gas testsuite: adjust recently added tests for hppaAlan Modra6-12/+21
Some hppa gas targets treat anything starting in the first column as a label, so directives can't start there. Also, binutils_assemble and run_dump_test cleverly edit test source to suit the hppa .comm directive which has a different syntax to most targets. The editing means we can't match source file names in dumps. Finally, hppa gas complains if instructions are emitted without a ".text" or similar directive. * testsuite/gas/all/pr27381.err: Don't match source file name. * testsuite/gas/all/pr27381.s: Don't start directive in first column. * testsuite/gas/all/pr27384.err: Don't match source file name. Adjust line number. * testsuite/gas/all/pr27384.s: Add ".text" directive. * testsuite/gas/elf/pr27355.err: Don't match source file name.
2021-02-12[binutils] Fix typo in comment in dwarf.hTom de Vries2-1/+5
Fix typo DW_AT_GNU_FORM_addr_index -> DW_FORM_GNU_addr_index. binutils/ChangeLog: 2021-02-12 Tom de Vries <tdevries@suse.de> * dwarf.h (debug_info): Fix typo in comment.
2021-02-12[binutils] Fix printing of .debug_str_offsetsTom de Vries2-1/+14
With exec: ... $ clang -gdwarf-5 ./src/gdb/testsuite/gdb.dwarf2/fission-mix*.c ... we have: ... $ readelf -w a.out ... Contents of the .debug_str_offsets section: Length: 0x24 Version: 0x5 Index Offset [String] 0 1d0 clang version 10.0.1 1 1e6 src/gdb/testsuite/gdb.dwarf2/fission-mix-2.c 2 213 /home/vries/gdb_versions/devel 3 232 bar 4 236 x 5 61 int 6 238 s 7 23a func2 8 2c ild/BUILD/glibc-2.26/csu 9 5 sdeps/x86_64/start.S 10 1d0 clang version 10.0.1 11 240 src/gdb/testsuite/gdb.dwarf2/fission-mix.c 12 213 /home/vries/gdb_versions/devel 13 26b foo 14 236 x 15 61 int 16 238 s 17 26f func 18 274 main 19 279 arg ... The section consists of two parts, one for each CU, each with a header, but the printing only reads the first header as a header, and prints the second header as: ... 8 2c ild/BUILD/glibc-2.26/csu 9 5 sdeps/x86_64/start.S ... Fix this in display_debug_str_offsets such that we have: ... 6 238 s 7 23a func2 Length: 0x2c Version: 0x5 Index Offset [String] 0 1d0 clang version 10.0.1 1 240 src/gdb/testsuite/gdb.dwarf2/fission-mix.c ... binutils/ChangeLog: 2021-02-12 Tom de Vries <tdevries@suse.de> * dwarf.c (display_debug_str_offsets): Handle multiple sets of entries.
2021-02-12[binutils] Print DWO IDTom de Vries2-1/+9
With exec: ... $ gcc -gsplit-dwarf ~/hello.c -gdwarf-5 ... a dwarf-5 DW_UT_skeleton CU is generated, but the corresponding DWO ID is not printed by readelf -wi. Add this, such that we have: .... Compilation Unit @ offset 0xc7: Length: 0x31 (32-bit) Version: 5 Unit Type: DW_UT_skeleton (4) Abbrev Offset: 0x64 Pointer Size: 8 + DWO ID: 0x4756ae3ac4348f21 <0><db>: Abbrev Number: 1 (DW_TAG_skeleton_unit) ... binutils/ChangeLog: 2021-02-12 Tom de Vries <tdevries@suse.de> * dwarf.c (process_debug_info): Print DWO ID.
2021-02-12Automatic date update in version.inGDB Administrator1-1/+1
2021-02-11[gdb/symtab] Handle DW_FORM_strx in form_requires_reprocessingTom de Vries2-1/+8
When running test-case gdb.dwarf2/fission-mix.exp using gcc-11, I run into: ... (gdb) file fission-mix^M Reading symbols from fission-mix...^M src/gdb/dwarf2/attribute.h:258: internal-error: \ void attribute::set_unsigned_reprocess(ULONGEST): \ Assertion `form_requires_reprocessing ()' failed.^M ... This happens when calling set_unsigned_reprocess on an attribute with form DW_FORM_strx. The assert triggers because DW_FORM_strx is not listed in form_requires_reprocessing. Fix this by adding DW_FORM_strx in form_requires_reprocessing. Tested on x86_64-linux. gdb/ChangeLog: 2021-02-11 Tom de Vries <tdevries@suse.de> PR symtab/27353 * dwarf2/attribute.c (attribute::form_requires_reprocessing): Return true for DW_FORM_strx.
2021-02-11Fix two Fortran regressionsTom Tromey2-1/+6
Luis pointed out that an earlier patch of mine caused two regressions in gdb.fortran. This patch fixes the problem. Regression tested on x86-64 Fedora 32. gdb/ChangeLog 2021-02-11 Tom Tromey <tromey@adacore.com> PR gdb/27383: * parse.c (write_exp_symbol_reference): Write sym.block.
2021-02-11Remove ia64 from obsolete listAlan Modra2-1/+4
* config.bfd: Remove ia64 from obsolete list.
2021-02-11Revert "ia64: Check UNDEFWEAK_NO_DYNAMIC_RELOC"Alan Modra2-15/+10
This reverts commit db41f6eb5234ea3c74c1ce4798cf9923d4a45a98.
2021-02-11gdb/testsuite: remove old commentAndrew Burgess2-5/+4
In commit: commit e92c8eb86dcef673652644694c832c504cf9a9a9 Date: Tue Feb 9 15:46:13 2021 +0000 gdb/fortran: add parser support for lbound and ubound When I created the test gdb/testsuite/gdb.fortran/lbound-ubound.exp, I copied the script from a different file and failed to delete the test description comment at the top (even though I added a new description). Fixed in this commit. gdb/testsuite/ChangeLog: * gdb.fortran/lbound-ubound.exp: Remove old comment.
2021-02-11gdb: change 'maint info section' to use command optionsAndrew Burgess7-107/+213
The 'maintenance info sections' command currently takes a list of filters on the command line. It can also accept the magic string 'ALLOBJ' which acts more like a command line flag, telling the command to print information about all objfiles. The manual has this to say about the options and filters: ... In addition, 'maint info sections' provides the following command options (which may be arbitrarily combined): ... Implying (to me at least) that I can do this: (gdb) maint info sections ALLOBJ READONLY to list all the read-only sections from all currently loaded object files. Unfortunately, this doesn't work. The READONLY filter will work, but ALLOBJ will not be detected correctly. It would be fairly simple to fix the ALLOBJ detection. However, I dislike this mixing of command options (ALLOBJ) with command data (the filters, e.g. READONLY, etc). As this is a maintenance command, so not really intended for end users, I think we can be a little more aggressive in "fixing" the option parsing. So that's what I do in this commit. The ALLOBJ mechanism is replaced with a real command option (-all-objects). The rest of the command operates just as before. The example above would now become: (gdb) maint info sections -all-objects READONLY The manual has been updated, and I added a NEWS entry to document the change. gdb/ChangeLog: * NEWS: Mention changes to 'maint info sections'. * maint.c (match_substring): Return a bool, fix whitespace issue. (struct single_bfd_flag_info): New struct. (bfd_flag_info): New static global. (match_bfd_flags): Return a bool, use bfd_flag_info. (print_bfd_flags): Use bfd_flag_info. (maint_print_section_info): Delete trailing whitespace. (struct maint_info_sections_opts): New struct. (maint_info_sections_option_defs): New static global. (maint_info_sections_completer): New function. (maintenance_info_sections): Use option parsing mechanism. (_initialize_maint_cmds): Register command completer. gdb/doc/ChangeLog: * gdb.texinfo (Files): Update documentation for 'maint info sections'. gdb/testsuite/ChangeLog: * gdb.base/maint-info-sections.exp: Update expected output, and add additional tests. Again.
2021-02-11gdb: 'maint info sections' - handle the no executable caseAndrew Burgess4-63/+105
The 'maint info sections' command is split into two blocks or work, first if there's an executable then the sections from the executable, and optionally all other loaded object files are printed. Then all the sections from any core file are printed. I ran into a situation where (for various reasons) I wasn't using a main executable. Instead I connected to a remote target and used add-symbol-file. This allowed me to debug an image that was already loaded on the remote system. Unfortunately, when I tried to use 'maint info sections' I saw nothing. The reason is that the loop over all object files is hidden behind a check that we have a main executable. This commit removes this check and merges together some duplicate code. I also (I think) made the output of this command cleaner. Here is the original output of 'maint info sections': Exec file: `/tmp/hello.x', file type elf64-x86-64. [0] 0x004002a8->0x004002c4 at 0x000002a8: .interp ALLOC LOAD READONLY DATA HAS_CONTENTS [1] 0x004002c4->0x004002e8 at 0x000002c4: .note.gnu.build-id ALLOC LOAD READONLY DATA HAS_CONTENTS ... And my modified output: Exec file: `/home/andrew/tmp/hello.x', file type elf64-x86-64. [0] 0x004002a8->0x004002c4 at 0x000002a8: .interp ALLOC LOAD READONLY DATA HAS_CONTENTS [1] 0x004002c4->0x004002e8 at 0x000002c4: .note.gnu.build-id ALLOC LOAD READONLY DATA HAS_CONTENTS ... The forced newline after 'Exec file: ' has been removed. This is now a wrap point (in case the filename is very long). Here is the original output of 'maint info sections ALLOBJ': Exec file: `/tmp/hello.x', file type elf64-x86-64. Object file: /tmp/hello.x [0] 0x004002a8->0x004002c4 at 0x000002a8: .interp ALLOC LOAD READONLY DATA HAS_CONTENTS [1] 0x004002c4->0x004002e8 at 0x000002c4: .note.gnu.build-id ALLOC LOAD READONLY DATA HAS_CONTENTS ... Object file: /lib64/ld-linux-x86-64.so.2 [0] 0x7ffff7fd12a8->0x7ffff7fd12c8 at 0x000002a8: .note.gnu.property ALLOC LOAD READONLY DATA HAS_CONTENTS [1] 0x7ffff7fd12c8->0x7ffff7fd12ec at 0x000002c8: .note.gnu.build-id ALLOC LOAD READONLY DATA HAS_CONTENTS ... And my modified output: Exec file: `/tmp/hello.x', file type elf64-x86-64. [0] 0x004002a8->0x004002c4 at 0x000002a8: .interp ALLOC LOAD READONLY DATA HAS_CONTENTS [1] 0x004002c4->0x004002e8 at 0x000002c4: .note.gnu.build-id ALLOC LOAD READONLY DATA HAS_CONTENTS ... Object file: `/lib64/ld-linux-x86-64.so.2', file type elf64-x86-64. [0] 0x7ffff7fd12a8->0x7ffff7fd12c8 at 0x000002a8: .note.gnu.property ALLOC LOAD READONLY DATA HAS_CONTENTS [1] 0x7ffff7fd12c8->0x7ffff7fd12ec at 0x000002c8: .note.gnu.build-id ALLOC LOAD READONLY DATA HAS_CONTENTS ... The executable now only gets a single header line. The header line for the additional object files is no longer indented as it was before, and the line is laid out in a similar style to the main executable line (with quotes and file type information). And of course, the biggest change. If GDB is started with no executable, but then the user does 'add-symbol-file ....' followed by 'maint info sections ALLOBJ', previously they got nothing, now they get: Object file: `/tmp/hello.x', file type elf64-x86-64. [0] 0x004002a8->0x004002c4 at 0x000002a8: .interp ALLOC LOAD READONLY DATA HAS_CONTENTS [1] 0x004002c4->0x004002e8 at 0x000002c4: .note.gnu.build-id ALLOC LOAD READONLY DATA HAS_CONTENTS ... gdb/ChangeLog: * maint.c (print_bfd_section_info_maybe_relocated): Delete, functionality merged into... (maint_print_all_sections): ...this new function. (maintenance_info_sections): Make use of maint_print_all_sections, allow all objects to be printed even where there's no executable. gdb/testsuite/ChangeLog: * gdb.base/maint-info-sections.exp: Update expected output, and add additional tests.
2021-02-11gdb/testsuite: split 'maint info sections' tests to a new fileAndrew Burgess3-87/+135
The next couple of patches are going to add more tests for the 'maint info sections' command. Rather than try to jam these tests into the already quite long gdb.base/maint.c, this commit moves all of the tests for 'maint info sections' into a new file. I've updated the tests to make use of some newer testsuite constructs, like -wrap and $gdb_test_name for gdb_test_multiple, but otherwise the tests should not have changed with this commit. gdb/testsuite/ChangeLog: * gdb.base/maint-info-sections.exp: New file, content is moved from gdb.base/maint.exp and cleaned up to use latest testsuite techniques. * gdb.base/maint.exp: Tests moved out to gdb.base/maint-info-sections.exp.
2021-02-11gdb: add obj_section function to bound_minimal_symbolAndrew Burgess6-4/+22
Add a new obj_section function to bound_minimal_symbol, this just calls obj_section on the contained minimal_symbol passing in the contained objfile. This allows some minor code simplification in a few places. There should be no user visible changes after this commit. gdb/ChangeLog: * breakpoint.c (resolve_sal_pc): Make use of bound_minimal_symbol::obj_section. * maint.c (maintenance_translate_address): Likewise. * minsyms.c (minimal_symbol_upper_bound): Likewise. * minsyms.h (struct bound_minimal_symbol) <obj_section>: New member function. * printcmd.c (info_address_command): Make use of bound_minimal_symbol::obj_section.
2021-02-11PR27294, avr OOMAlan Modra2-8/+15
PR 27294 * elf32-avr.c (avr_elf32_load_records_from_section): Use bfd_malloc_and_get_section. Use bfd_byte* vars and remove then unnecessary casts.
2021-02-11PR27290, PR27293, PR27295, various avr objdump fixesAlan Modra2-24/+56
Adds missing sanity checks for avr device info note, to avoid potential buffer overflows. Uses bfd_malloc_and_get_section for sanity checking section size. PR 27290 PR 27293 PR 27295 * od-elf32_avr.c (elf32_avr_get_note_section_contents): Formatting. Use bfd_malloc_and_get_section. (elf32_avr_get_note_desc): Formatting. Return descsz. Sanity check namesz. Return NULL if descsz is too small. Ensure string table is terminated. (elf32_avr_get_device_info): Formatting. Add note_size param. Sanity check note. (elf32_avr_dump_mem_usage): Adjust to suit.
2021-02-11PR27291, integer overflow in bfd_get_section_contentsAlan Modra2-4/+9
Makes the code a little more elegant too. Note that the unsigned overflow reported here is well defined so this patch doesn't fix any real problem. PR 27291 * section.c (bfd_get_section_contents): Avoid possible overflow when range checking offset and count. (bfd_set_section_contents): Likewise.
2021-02-10gdb: adjust comment in gdb.multi/multi-target.exp.tclSimon Marchi1-1/+1
I wanted to make this change before pushing the last patch but forgot to amend before pushing. Change-Id: I8e1f03ee0131c1e75973718e7835b39580a06054
2021-02-11Automatic date update in version.inGDB Administrator1-1/+1
2021-02-10gdb/testsuite: use "set sysroot" in gdb.multi/multi-target.exp.tclSimon Marchi2-1/+12
The multi-target tests involve some inferiors using remote targets. By default, GDB uses target: as the sysroot, which makes it read loaded libraries and their debug info through GDBserver. This makes the tests run slower than necessary. Pass `-ex "set sysroot"` when launching GDB in these tests, so that GDB always reads from its local file system. On a system where I don't have debug info for libc, that reduces run time for $ make check TESTS="gdb.multi/multi-target-*.exp" from 1:15 to 0:45. On this other system where debug info is installed though, it reduces it from 13:00 to 1:45. gdb/testsuite/ChangeLog: * gdb.multi/multi-target.exp.tcl (setup): Add "set sysroot" to GDBFLAGS. Change-Id: I9d24f3def843472d35dfb5667c12d70ae1d7e984
2021-02-11gdb: Remove arm-symbianelf supportAlan Modra17-170/+29
Since it has gone from bfd/. * arm-symbian-tdep.c: Delete. * NEWS: Mention arm-symbian removal. * Makefile.in: Remove arm-symbian-tdep entries. * configure.tgt: Remove arm*-*-symbianelf*. * doc/gdb.texinfo: Remove mention of SymbianOS. * osabi.c (gdb_osabi_names): Remove "Symbian". * osabi.h (enum gdb_osabi): Remove GDB_OSABI_SYMBIAN. * testsuite/gdb.base/ending-run.exp: Remove E32Main handling. * testsuite/gdb.ada/catch_ex_std.exp: Remove arm*-*-symbianelf* handling. * testsuite/gdb.base/dup-sect.exp: Likewise. * testsuite/gdb.base/long_long.exp: Likewise. * testsuite/gdb.base/solib-weak.exp: Likewise. * testsuite/gdb.guile/scm-section-script.exp: Likewise. * testsuite/gdb.python/py-section-script.exp: Likewise. * testsuite/lib/dwarf.exp: Likewise. * testsuite/lib/gdb.exp: Likewise.
2021-02-11Re: Remove arm-symbianelfAlan Modra4-0/+12
gas/ * NEWS: Mention arm-symbianelf removal. ld/ * NEWS: Mention arm-symbianelf removal.
2021-02-10[binutils] Handle absolute DW_AT_dwo_nameTom de Vries2-2/+10
With an exec: ... $ pwd /home/vries/tmp $ gcc /home/vries/tmp/src/hello.c -gsplit-dwarf -c \ -o /home/vries/tmp/obj/hello.o ... I get: ... $ readelf -w obj/hello.o > READELF readelf: Warning: Unable to load dwo file: \ /home/vries/tmp//home/vries/tmp/obj/hello.dwo ... The dwo file name is listed here: ... <20> DW_AT_GNU_dwo_name: /home/vries/tmp/obj/hello.dwo <24> DW_AT_comp_dir : /home/vries/tmp ... The standard states about the DW_AT_dwo_name attribute: ... value is a null-terminated string containing the full or relative path name (relative to the value of the DW_AT_comp_dir attribute, see below) of the object file that contains the full compilation unit. ... So, readelf shouldn't try to prefix an absolute path with DW_AT_comp_dir. Fix this in load_dwo_file by handling the absolute path case. binutils/ChangeLog: 2021-02-10 Tom de Vries <tdevries@suse.de> PR binutils/27391 * dwarf.c (load_dwo_file): Handle case that name is absolute path.
2021-02-10gdb/fortran: add parser support for lbound and uboundAndrew Burgess7-0/+524
Add support for the LBOUND and UBOUND built in functions to the Fortran expression parser. Both support taking one or two arguments. A single argument, which must be an array, returns an array containing all of the lower or upper bound data. When passed two arguments, the second argument is the dimension being asked about. In this case the result is a scalar containing the lower or upper bound just for that dimension. Some examples of usage taken from the new test: # Given: # integer, dimension (-8:-1,-10:-2) :: neg_array # (gdb) p lbound (neg_array) $1 = (-8, -10) (gdb) p lbound (neg_array, 1) $3 = -8 (gdb) p lbound (neg_array, 2) $5 = -10 gdb/ChangeLog: * f-exp.y (UNOP_OR_BINOP_INTRINSIC): New token. (exp): New pattern using UNOP_OR_BINOP_INTRINSIC. (one_or_two_args): New pattern. (f77_keywords): Add lbound and ubound. * f-lang.c (fortran_bounds_all_dims): New function. (fortran_bounds_for_dimension): New function. (evaluate_subexp_f): Handle FORTRAN_LBOUND and FORTRAN_UBOUND. (operator_length_f): Likewise. (print_subexp_f): Likewise. (dump_subexp_body_f): Likewise. (operator_check_f): Likewise. * std-operator.def (FORTRAN_LBOUND): Define. (FORTRAN_UBOUND): Define. gdb/testsuite/ChangeLog: * gdb.fortran/lbound-ubound.F90: New file. * gdb.fortran/lbound-ubound.exp: New file.
2021-02-10libctf: add missing header in BFD ELF checkNick Alcock3-0/+7
Without this, GCC warns: In file included from conftest.c:36: ../../libctf/../bfd/elf-bfd.h: In function 'bfd_section_is_ctf': ../../libctf/../bfd/elf-bfd.h:3089:10: warning: implicit declaration of function 'strncmp' [-Wimplicit-function-declaration] 3089 | return strncmp (name, ".ctf", 4) == 0 && (name[4] == 0 || name[4] == '.'); | ^~~~~~~ ../../libctf/../bfd/elf-bfd.h:3089:33: warning: 'strncmp' argument 3 type is 'int' where 'long unsigned int' is expected in a call to built-in function declared without prototype [-Wbuiltin-declaration-mismatch] 3089 | return strncmp (name, ".ctf", 4) == 0 && (name[4] == 0 || name[4] == '.'); | ^ <built-in>: note: built-in 'strncmp' declared here These warnings do not currently throw off the result of the configure check, but it's better to squash them anyway. libctf/ChangeLog 2021-02-03 Nick Alcock <nick.alcock@oracle.com> * configure.ac (ac_cv_libctf_bfd_elf): Include string.h. * configure: Regenerated.