Commit Graph

107015 Commits

Author SHA1 Message Date
Joel Brobecker
f069ea46a0 Rename gdb/ChangeLog to gdb/ChangeLog-2021
Now that ChangeLog entries are no longer used for GDB patches,
this commit renames the file gdb/ChangeLog to gdb/ChangeLog-2021,
similar to what we would do in the context of the "Start of New
Year" procedure.

The purpose of this change is to avoid people merging ChangeLog
entries by mistake when applying existing commits that they are
currently working on.
2021-07-06 09:16:30 -07:00
Dan Streetman
acbf56d780 sim: ppc: add missing empty targets
These are copied from sim/common/Make-common.in.

On ppc the build fails without at least the 'info' target, e.g.:

Making info in ppc
make[4]: Entering directory '/<<BUILDDIR>>/gdb-10.2.2974.g5b45e89f56d+21.10.20210510155809/build/default/sim/ppc'
make[4]: *** No rule to make target 'info'.  Stop.
2021-07-06 11:47:50 -04:00
Yuri Chornoivan
579f0281f3 PR 28053: Fix spelling mistakes: usupported -> unsupported and relocatation -> relocation. 2021-07-06 14:56:05 +01:00
Michael Matz
235f5ef4a6 elf/riscv: Fix relaxation with aliases [PR28021]
the fix for PR22756 only changed behaviour for hidden aliases,
but the same situation exists for non-hidden aliases: sym_hashes[]
can contain multiple entries pointing to the same symbol structure
leading to relaxation adjustment to be applied twice.

Fix this by testing for duplicates for everything that looks like it
has a version.

PR ld/28021

bfd/
	* elfnn-riscv.c (riscv_relax_delete_bytes): Check for any
	versioning.

ld/
	* testsuite/ld-riscv-elf/relax-twice.ver: New.
	* testsuite/ld-riscv-elf/relax-twice-1.s: New.
	* testsuite/ld-riscv-elf/relax-twice-2.s: New.
	* testsuite/ld-riscv-elf/ld-riscv-elf.exp
	(run_relax_twice_test): New, and call it.
2021-07-06 15:49:03 +02:00
Pedro Alves
46f2c22eab Update gdb performance testsuite to be compatible with Python 3.8
Running "make check-perf" on a system with Python 3.8 (e.g., Ubuntu
20.04) runs into this Python problem:

  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/perftest.py", line 65, in run
      self.execute_test()
    File "<string>", line 35, in execute_test
    File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/measure.py", line 45, in measure
      m.start(id)
    File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/measure.py", line 102, in start
      self.start_time = time.clock()
  AttributeError: module 'time' has no attribute 'clock'
  Error while executing Python code.
  (gdb) FAIL: gdb.perf/single-step.exp: python SingleStep(1000).run()

... many times over.

The problem is that the testsuite is using time.clock(), deprecated in
Python 3.3 and finaly removed in Python 3.8.  The guidelines say to
use time.perf_counter() or time.process_time() instead depending on
requirements.  Looking at the current description of those functions,
at:

   https://docs.python.org/3.10/library/time.html

we have:

   time.perf_counter() -> float

       Return the value (in fractional seconds) of a performance
       counter, i.e. a clock with the highest available resolution to
       measure a short duration. It does include time elapsed during
       sleep and is system-wide. (...)

   time.process_time() -> float

       Return the value (in fractional seconds) of the sum of the
       system and user CPU time of the current process. It does not
       include time elapsed during sleep. It is process-wide by
       definition. (...)

I'm thinking that it's just best to record both instead of picking
one.  So this patch replaces the MeasurementCpuTime measurement class
with two new classes -- MeasurementPerfCounter and
MeasurementProcessTime.  Correspondingly, this changes the reports in
testsuite/perftest.log -- we have two new "perf_counter" and
"process_time" measurements and the "cpu_time" measurement is gone.  I
don't suppose breaking backward compatibility here is a big problem.
I suspect no one is really tracking long term performance using the
perf testsuite today.  And if they are, it shouldn't be hard to adjust.

For backward compatility, with Python < 3.3, both perf_counter and
process_time use the old time.clock.

gdb/testsuite/ChangeLog:
yyyy-mm-dd  Qingchuan Shi  <qingchuan.shi@amd.com>
	    Pedro Alves  <pedro@palves.net>

	* gdb.perf/lib/perftest/perftest.py: Import sys.
	(time.perf_counter, time.process_time): Map to time.clock on
	Python < 3.3.
	(MeasurementCpuTime): Delete, replaced by...
	(MeasurementPerfCounter, MeasurementProcessTime): .. these two new
	classes.
	* gdb.perf/lib/perftest/perftest.py: Import MeasurementPerfCounter
	and MeasurementProcessTime instead of MeasurementCpuTime.
	(TestCaseWithBasicMeasurements): Use MeasurementPerfCounter and
	MeasurementProcessTime instead of MeasurementCpuTime.

Co-authored-by: Qingchuan Shi <qingchuan.shi@amd.com>

Change-Id: Ia850c05d5ce57d2dada70ba5b0061f566444aa2b
2021-07-06 12:10:52 +01:00
Pedro Alves
e3e837844a gdb.perf/: FAIL on Python errors, avoid "ERROR: internal buffer is full"
Currently, if you run make check-perf on a system with Python 3.8,
tests seen to PASS, but they actually test a lot less than intended,
due to:

 PerfTest::assemble, run ...
 python BackTrace(64).run()
 Traceback (most recent call last):
   File "<string>", line 1, in <module>
   File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/perftest.py", line 65, in run
     self.execute_test()
   File "<string>", line 49, in execute_test
   File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/measure.py", line 45, in measure
     m.start(id)
   File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/measure.py", line 102, in start
     self.start_time = time.clock()
 AttributeError: module 'time' has no attribute 'clock'
 Error while executing Python code.
 (gdb) PASS: gdb.perf/backtrace.exp: python BackTrace(64).run()

And then, after fixing the above Python compatibility issues (which
will be a separate patch), I get 86 instances of overflowing expect's
buffer, like:

  ERROR: internal buffer is full.
  UNRESOLVED: gdb.perf/single-step.exp: python SingleStep(1000).run()

This patch fixes both problems by adding & using a gdb_test_python_run
routine that:

 - checks for Python errors
 - consumes output line by line

gdb/testsuite/ChangeLog:
yyyy-mm-dd  Pedro Alves  <pedro@palves.net>

	* gdb.perf/backtrace.exp: Use gdb_test_python_run.
	* gdb.perf/disassemble.exp: Use gdb_test_python_run.
	* gdb.perf/single-step.exp: Use gdb_test_python_run.
	* gdb.perf/skip-command.exp: Use gdb_test_python_run.
	* gdb.perf/skip-prologue.exp: Use gdb_test_python_run.
	* gdb.perf/solib.exp: Use gdb_test_python_run.
	* gdb.perf/template-breakpoints.exp: Use gdb_test_python_run.
	* lib/perftest.exp (gdb_test_python_run): New.

Change-Id: I007af36f164b3f4cda41033616eaaa4e268dfd2f
2021-07-06 11:51:57 +01:00
Tom de Vries
0d4e283965 [gdb/testsuite] Remove read1 timeout factor from gdb.base/info-macros.exp
At the moment some check-read1 timeouts are handled like this in
gdb.base/info-macros.exp:
...
gdb_test_multiple_with_read1_timeout_factor 10 "$test" $testname {
  -re "$r1$r2$r3" {
     pass $testname
  }
  -re ".*#define TWO.*\r\n$gdb_prompt" {
     fail $testname
  }
  -re ".*#define THREE.*\r\n$gdb_prompt" {
     fail $testname
  }
  -re ".*#define FOUR.*\r\n$gdb_prompt" {
     fail $testname
  }
}
...
which is not ideal.

We could use gdb_test_lines, but it currently doesn't support verifying
the absence of regexps, which is done using the clauses above calling fail.

Fix this by using gdb_test_lines and adding a -re-not syntax to
gdb_test_lines, such that we can do:
...
gdb_test_lines $test $testname $r1.*$r2 \
    -re-not "#define TWO" \
    -re-not "#define THREE" \
    -re-not "#define FOUR"
...

Tested on x86_64-linux, whith make targets check and check-read1.

Also observed that check-read1 execution time is reduced from 6m35s to 13s.

gdb/testsuite/ChangeLog:

2021-07-06  Tom de Vries  <tdevries@suse.de>

	* gdb.base/info-macros.exp: Replace use of
	gdb_test_multiple_with_read1_timeout_factor with gdb_test_lines.
	(gdb_test_multiple_with_read1_timeout_factor): Remove.
	* lib/gdb.exp (gdb_test_lines): Add handling or -re-not <regexp>.
2021-07-06 12:05:37 +02:00
Nelson Chu
70a590636b RISC-V: Fix the build broken with -Werror.
ChangeLog:

bfd/

	* elfnn-riscv.c(riscv_elf_additional_program_headers): Removed the
	unused variable s.
	(riscv_elf_modify_segment_map): Added ATTRIBUTE_UNUSED for the
	unused parameter info.
2021-07-06 17:31:14 +08:00
Tom de Vries
752e419362 [gdb/symtab] Fix skipping of import of C++ CU
Tom Tromey observed that when changing the language in
gdb.dwarf2/imported-unit-bp.exp from c to c++, the test failed.

This is due to this code in process_imported_unit_die:
...
      /* We're importing a C++ compilation unit with tag DW_TAG_compile_unit
         into another compilation unit, at root level.  Regard this as a hint,
         and ignore it.  */
      if (die->parent && die->parent->parent == NULL
          && per_cu->unit_type == DW_UT_compile
          && per_cu->lang == language_cplus)
        return;
...
which should have a partial symtabs counterpart.

Add the missing counterpart in process_psymtab_comp_unit.

Tested on x86_64-linux (openSUSE Leap 15.2), no regressions for config:
- using default gcc version 7.5.0
  (with 5 unexpected FAILs)
- gcc 10.3.0 and target board
  unix/-flto/-O0/-flto-partition=none/-ffat-lto-objects
  (with 1000 unexpected FAILs)

gdb/ChangeLog:

2021-07-06  Tom de Vries  <tdevries@suse.de>

	* dwarf2/read.c (scan_partial_symbols): Skip top-level imports of
	c++ CU.
	* testsuite/gdb.dwarf2/imported-unit-bp.exp: Moved to ...
	* testsuite/gdb.dwarf2/imported-unit-bp.exp.tcl: ... here.
	* testsuite/gdb.dwarf2/imported-unit-bp-c++.exp: New test.
	* testsuite/gdb.dwarf2/imported-unit-bp-c.exp: New test.
	* testsuite/gdb.dwarf2/imported-unit.exp: Update.
2021-07-06 10:58:43 +02:00
Kito Cheng
fbc95f1e11 RISC-V: Add PT_RISCV_ATTRIBUTES and add it to PHDR.
We added PT_RISCV_ATTRIBUTES to program header to make
.riscv.attribute easier to find in dynamic loader or kernel.

Ref:
https://github.com/riscv/riscv-elf-psabi-doc/pull/71

ChangeLog:

bfd/

	* elfnn-riscv.c(RISCV_ATTRIBUTES_SECTION_NAME): New.
	(riscv_elf_additional_program_headers): Ditto.
	(riscv_elf_modify_segment_map): Ditto.
	(elf_backend_additional_program_headers): Ditto.
	(elf_backend_modify_segment_map): Ditto.
	(elf_backend_obj_attrs_section): Use RISCV_ATTRIBUTES_SECTION_NAME
	rather than string literal.

binutils/

	* readelf.c(get_riscv_segment_type): New.
	(get_segment_type): Handle EM_RISCV.

include/

	* elf/riscv.h (PT_RISCV_ATTRIBUTES): New.
	* testsuite/ld-elf/orphan-region.ld: Discard .riscv.attributes
	section for simplify testcase.
	* testsuite/ld-riscv-elf/attr-phdr.d: New.
	* testsuite/ld-riscv-elf/attr-phdr.s: Ditto.
	* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Add attr-phdr to
	testcase.
2021-07-06 11:34:36 +08:00
Alan Modra
07b2745f85 Re: PR28055, segfault in bpf special reloc function
PR 28055
	* elf64-bpf.c (bpf_elf_generic_reloc): Add missing ATTRIBUTE_UNUSED.
2021-07-06 10:41:36 +09:30
GDB Administrator
606afd7e11 Automatic date update in version.in 2021-07-06 00:00:11 +00:00
Tom Tromey
09e2fb720b Simplify debug_names index writing
This changes the .debug_names writer to find the TU indices in the
main loop over all CUs and TUs.  (An earlier patch applied this same
treatment to the .gdb_index writer.)
2021-07-05 12:24:00 -06:00
Tom Tromey
844a72efbc Simplify gdb_index writing
write_gdbindex writes the CUs first, then walks the signatured type
hash table to write out the TUs.  However, now that CUs and TUs are
unified in the DWARF reader, it's simpler to handle both of these in
the same loop.
2021-07-05 12:23:41 -06:00
Tom Tromey
870c2204a2 Minor cleanup to addrmap_index_data::previous_valid
This changes addrmap_index_data::previous_valid to a bool, and
initializes it inline.
2021-07-05 11:57:40 -06:00
Tom Tromey
b5b44b5df0 Fix oddity in write_gdbindex
My recent patch to unify CUs and TUs introduced an oddity in
write_gdbindex.  Here, we pass 'i' to recursively_write_psymbols, but
we must instead pass 'counter', to handle the situation where a TU is
mixed in with the CUs.

I am not sure a test case for this is possible.  I think it can only
happen when using DWARF 5, where a TU appears in .debug_info.
However, this situation is already not handled correctly by
.gdb_index.  I filed a bug about this.
2021-07-05 11:57:14 -06:00
Tom Tromey
b6aeb717a8 Fix warning in symtab.c
The compiler gives this warning when building symtab.c:

../../binutils-gdb/gdb/symtab.c:4247:28: warning: 'to_match' may be used uninitialized in this function [-Wmaybe-uninitialized]

This patch fixes the warning by adding a gdb_assert_not_reached.
2021-07-05 11:54:03 -06:00
H.J. Lu
9181724704 ld: Cache and reuse the IR archive file descriptor
Linker plugin_object_p opens the IR archive for each IR archive member.
For GCC plugin, plugin_object_p closes the archive file descriptor.  But
for LLVM plugin, the archive file descriptor remains open.  If there are
3000 IR archive members, there are 3000 file descriptors for them.  We
can run out of file descriptors petty easily.

1. Add archive_plugin_fd and archive_plugin_fd_open_count to bfd so that
we can cache and reuse the IR archive file descriptor for all IR archive
members in the archive.
2. Add bfd_plugin_close_file_descriptor to properly close the IR archive
file descriptor.

bfd/

	PR ld/28040
	* archive.c (_bfd_archive_close_and_cleanup): Close the archive
	plugin file descriptor if needed.
	* bfd.c (bfd): Add archive_plugin_fd and
	archive_plugin_fd_open_count.
	* opncls.c (_bfd_new_bfd): Initialize to -1.
	* plugin.c (bfd_plugin_open_input): Cache and reuse the archive
	plugin file descriptor.
	(bfd_plugin_close_file_descriptor): New function.
	(try_claim): Call bfd_plugin_close_file_descriptor.
	* plugin.h (bfd_plugin_close_file_descriptor): New.
	* bfd-in2.h: Regenerated.

ld/

	PR ld/28040
	* plugin.c (plugin_input_file): Add ibfd.
	(release_plugin_file_descriptor): New function.
	(release_input_file): Call release_plugin_file_descriptor to
	close input->fd.
	(plugin_object_p): Call release_plugin_file_descriptor to close
	input->fd.  Also call release_plugin_file_descriptor if not
	claimed.
	* testsuite/config/default.exp (RANLIB): New.
	* testsuite/ld-plugin/lto.exp: Run ranlib test.
2021-07-05 08:51:35 -07:00
Nick Clifton
c919d6be44 Restore the libiberty component of commit 50ad1254d5.
This commit has not yet been applied to the master sources in the gcc repository.
It was submitted here: https://gcc.gnu.org/pipermail/gcc-patches/2021-July/574405.html
The commit allows options to be set for the AR and RANLIB programs used when building libiberty, which in turn allows building with LTO enabled.
2021-07-05 16:21:42 +01:00
Nick Clifton
6e0dfbf420 Updated translations (mainly Ukranian and French) triggered by creation of 2.37 branch. 2021-07-05 15:54:35 +01:00
Tom de Vries
2e333e797e [gdb/testsuite] Fix fail in gdb.fortran/ptype-on-functions.exp with gcc-7
Since commit 05b8577206 "gdb/fortran: Add type info of formal parameter for
clang" I see:
...
(gdb) ptype say_string^M
type = void (character*(*), integer(kind=4))^M
(gdb) FAIL: gdb.fortran/ptype-on-functions.exp: ptype say_string
...

The part of the commit causing the fail is:
...
 gdb_test "ptype say_string" \
-    "type = void \\(character\\*\\(\\*\\), integer\\(kind=\\d+\\)\\)"
+    "type = void \\(character\[^,\]+, $integer8\\)"
...
which fails to take into account that for gcc-7 and before, the type for
string length of a string argument is int, not size_t.

Fix this by allowing both $integer8 and $integer4.

Tested on x86_64-linux, with gcc-7 and gcc-10.

gdb/testsuite/ChangeLog:

2021-07-05  Tom de Vries  <tdevries@suse.de>

	* gdb.fortran/ptype-on-functions.exp: Allow both $integer8 and
	$integer4 for size of string length.
2021-07-05 16:26:42 +02:00
Simon Marchi
99624310dd gdb: fall back on sigpending + sigwait if sigtimedwait is not available
The macOS platform does not provide sigtimedwait, so we get:

      CXX    compile/compile.o
    In file included from /Users/smarchi/src/binutils-gdb/gdb/compile/compile.c:46:
    /Users/smarchi/src/binutils-gdb/gdb/../gdbsupport/scoped_ignore_signal.h:69:4: error: use of undeclared identifier 'sigtimedwait'
              sigtimedwait (&set, nullptr, &zero_timeout);
              ^

An alternative to sigtimedwait with a timeout of 0 is to use sigpending,
to first check which signals are pending, and then sigwait, to consume
them.  Since that's slightly more expensive (2 syscalls instead of 1),
keep using sigtimedwait for the platforms that provide it, and fall back
to sigpending + sigwait for the others.

gdbsupport/ChangeLog:

	* scoped_ignore_signal.h (struct scoped_ignore_signal)
	<~scoped_ignore_signal>: Use sigtimedwait if HAVE_SIGTIMEDWAIT
	is defined, else use sigpending + sigwait.

Change-Id: I2a72798337e81dd1bbd21214736a139dd350af87
Co-Authored-By: John Baldwin <jhb@FreeBSD.org>
2021-07-05 09:54:58 -04:00
Simon Marchi
f4931779e4 gdbsupport/common.m4: check for sigtimedwait
The next patch will make the use of sigtimedwait conditional to whether
the platform provides it.  Start by adding a configure check for it.

gdbsupport/ChangeLog:

	* common.m4 (GDB_AC_COMMON): Check for sigtimedwait.
	* config.in, configure: Re-generate.

gdb/ChangeLog:

	* config.in, configure: Re-generate.

gdbserver/ChangeLog:

	* config.in, configure: Re-generate.

Change-Id: Ic7613fe14521b966b4d991bbcd0933ab14629c05
2021-07-05 09:54:35 -04:00
Alan Modra
4dcdbbd1bc Re: opcodes: constify & local meps macros
Commit f375d32b35 changed a generated file.  Edit the source instead.

	* mep.opc (macros): Make static and const.
	(lookup_macro): Return and use const pointer.
	(expand_macro): Make mac param const.
	(expand_string): Make pmacro const.
2021-07-05 21:40:49 +09:30
Alan Modra
b4c4b8aaad PR28055, segfault in bpf special reloc function
The testcase in this PR tickled two bugs fixed here.  output_bfd is
NULL when a reloc special_function is called for final linking and
when called from bfd_generic_get_relocated_section_contents.  Clearly
using output_bfd is wrong as it results in segfaults.  Not only that,
the endianness of the reloc field really should be that of the input.
The second bug was not checking that the entire reloc field was
contained in the section contents.

	PR 28055
	* elf64-bpf.c (bpf_elf_generic_reloc): Use correct bfd for bfd_put
	and bfd_put_32 calls.  Correct section limit checks.
2021-07-05 21:39:33 +09:30
Alan Modra
40e1d303ce PR28047, readelf crash due to assertion failure
DW_FORM_ref1, DW_FORM_ref2, DW_FORM_ref4, DW_FORM_ref1, and
DW_FORM_ref_udata are all supposed to be within the containing unit.

	PR 28047
	* dwarf.c (get_type_abbrev_from_form): Add cu_end parameter.
	Check DW_FORM_ref1 etc. arg against cu_end rather than end of
	section.  Adjust all callers.
2021-07-05 20:04:21 +09:30
GDB Administrator
74ace05485 Automatic date update in version.in 2021-07-05 00:00:10 +00:00
Simon Marchi
47d36ffbf0 gdb: return early if no execution in darwin_solib_create_inferior_hook
When loading a file using the file command on macOS, we get:

    $ ./gdb -nx --data-directory=data-directory -q -ex "file ./test"
    Reading symbols from ./test...
    Reading symbols from /Users/smarchi/build/binutils-gdb/gdb/test.dSYM/Contents/Resources/DWARF/test...
    /Users/smarchi/src/binutils-gdb/gdb/thread.c:72: internal-error: struct thread_info *inferior_thread(): Assertion `current_thread_ != nullptr' failed.
    A problem internal to GDB has been detected,
    further debugging may prove unreliable.
    Quit this debugging session? (y or n)

The backtrace is:

    * frame #0: 0x0000000101fcb826 gdb`internal_error(file="/Users/smarchi/src/binutils-gdb/gdb/thread.c", line=72, fmt="%s: Assertion `%s' failed.") at errors.cc:52:3
      frame #1: 0x00000001018a2584 gdb`inferior_thread() at thread.c:72:3
      frame #2: 0x0000000101469c09 gdb`get_current_regcache() at regcache.c:421:31
      frame #3: 0x00000001015f9812 gdb`darwin_solib_get_all_image_info_addr_at_init(info=0x0000603000006d00) at solib-darwin.c:464:34
      frame #4: 0x00000001015f7a04 gdb`darwin_solib_create_inferior_hook(from_tty=1) at solib-darwin.c:515:5
      frame #5: 0x000000010161205e gdb`solib_create_inferior_hook(from_tty=1) at solib.c:1200:3
      frame #6: 0x00000001016d8f76 gdb`symbol_file_command(args="./test", from_tty=1) at symfile.c:1650:7
      frame #7: 0x0000000100abab17 gdb`file_command(arg="./test", from_tty=1) at exec.c:555:3
      frame #8: 0x00000001004dc799 gdb`do_const_cfunc(c=0x000061100000c340, args="./test", from_tty=1) at cli-decode.c:102:3
      frame #9: 0x00000001004ea042 gdb`cmd_func(cmd=0x000061100000c340, args="./test", from_tty=1) at cli-decode.c:2160:7
      frame #10: 0x00000001018d4f59 gdb`execute_command(p="t", from_tty=1) at top.c:674:2
      frame #11: 0x0000000100eee430 gdb`catch_command_errors(command=(gdb`execute_command(char const*, int) at top.c:561), arg="file ./test", from_tty=1, do_bp_actions=true)(char const*, int), char const*, int, bool) at main.c:523:7
      frame #12: 0x0000000100eee902 gdb`execute_cmdargs(cmdarg_vec=0x00007ffeefbfeba0 size=1, file_type=CMDARG_FILE, cmd_type=CMDARG_COMMAND, ret=0x00007ffeefbfec20) at main.c:618:9
      frame #13: 0x0000000100eed3a4 gdb`captured_main_1(context=0x00007ffeefbff780) at main.c:1322:3
      frame #14: 0x0000000100ee810d gdb`captured_main(data=0x00007ffeefbff780) at main.c:1343:3
      frame #15: 0x0000000100ee8025 gdb`gdb_main(args=0x00007ffeefbff780) at main.c:1368:7
      frame #16: 0x00000001000044f1 gdb`main(argc=6, argv=0x00007ffeefbff8a0) at gdb.c:32:10
      frame #17: 0x00007fff20558f5d libdyld.dylib`start + 1

The solib_create_inferior_hook call in symbol_file_command was added by
commit ea142fbfc9 ("Fix breakpoints on file reloads for PIE
binaries").  It causes solib_create_inferior_hook to be called while
the inferior is not running, which darwin_solib_create_inferior_hook
does not expect.  darwin_solib_get_all_image_info_addr_at_init, in
particular, assumes that there is a current thread, as it tries to get
the current thread's regcache.

Fix it by adding a target_has_execution check and returning early.  Note
that there is a similar check in svr4_solib_create_inferior_hook.

gdb/ChangeLog:

	* solib-darwin.c (darwin_solib_create_inferior_hook): Return
	early if no execution.

Change-Id: Ia11dd983a1e29786e5ce663d0fcaa6846dc611bb
2021-07-04 18:48:15 -04:00
GDB Administrator
bdec4c4f1e Automatic date update in version.in 2021-07-04 00:00:09 +00:00
H.J. Lu
3bdd3c0418 gprof: Regenerate configure
* configure: Regenerated.
2021-07-03 12:51:45 -07:00
Joel Brobecker
ccd14903f8 Update NEWS post GDB 11 branch creation.
gdb/ChangeLog:

	* NEWS: Create a new section for the next release branch.
	Rename the section of the current branch, now that it has
	been cut.
2021-07-03 10:56:25 -07:00
Joel Brobecker
5916203ad0 Bump version to 12.0.50.DATE-git.
Now that the GDB 11 branch has been created, we can
bump the version number.

gdb/ChangeLog:

	GDB 11 branch created (4b51505e33):
	* version.in: Bump version to 12.0.50.DATE-git.

gdb/testsuite/ChangeLog:

	* gdb.base/default.exp: Change $_gdb_major to 12.
2021-07-03 10:56:25 -07:00
Tom Tromey
4fabc3a897 Use 'bool' more idiomatically in dwarf_decode_lines
I noticed a couple of spots related to dwarf_decode_lines where the
'include_p' field was not being used idiomatically -- it is of type
bool now, so treat it as such.

gdb/ChangeLog
2021-07-03  Tom Tromey  <tom@tromey.com>

	* dwarf2/read.c (lnp_state_machine::record_line): Use 'true'.
	(dwarf_decode_lines): Remove '=='.
2021-07-03 11:40:54 -06:00
Nick Clifton
4b51505e33 More minor updates to the how-to-make-a-release documentation 2021-07-03 15:57:56 +01:00
Nick Clifton
346d80ef33 Update version number and regenerate files 2021-07-03 15:16:48 +01:00
Nick Clifton
514192487e Add markers for 2.37 branch 2021-07-03 14:50:57 +01:00
Nick Clifton
20c4b12e93 Synchronize libiberty sources (and include/demangle.h) with GCC master version 2021-07-03 14:00:33 +01:00
GDB Administrator
0d03c52682 Automatic date update in version.in 2021-07-03 00:00:10 +00:00
Tom Tromey
57bb96d3a2 Use 'const' in ada-exp.y
I found a few spots in ada-exp.y that could use 'const'.
Tested by rebuilding.

2021-07-02  Tom Tromey  <tromey@adacore.com>

	* ada-exp.y (chop_selector, chop_separator, write_selectors)
	(write_ambiguous_var, get_symbol_field_type): Use const.
2021-07-02 13:22:47 -06:00
Pedro Alves
90b044ef10 Document TUI improvements in the manual & NEWS
gdb/ChangeLog:
yyyy-mm-dd  Pedro Alves  <pedro@palves.net>
	    Hannes Domani  <ssbssa@yahoo.de>

	* NEWS: Add new "TUI Improvements" section and mention mouse
	support and that unrecognized special keys are now passed to
	GDB.  Mention Python Window.click in the Python improvements
	section.

gdb/doc/ChangeLog:
yyyy-mm-dd  Pedro Alves  <pedro@palves.net>

	* gdb.texinfo (TUI): <TUI Mouse Support>: New node/section.

Co-Authored-By: Hannes Domani <ssbssa@yahoo.de>

Change-Id: I0d79a795d8ac561fd28cdc5184bff029ba28bc64
2021-07-02 16:31:20 +01:00
Nick Clifton
49910fd88d Fix an illegal memory access triggered by an attempt to parse a corrupt input file.
PR 28046
	* dwarf2.c (read_ranges): Check that range_ptr does not exceed
	range_end.
2021-07-02 14:56:36 +01:00
Alan Modra
4ff0bb2df5 PR28048, heap-buffer-overflow on readelf -Ww
PR 28048
	* dwarf.c (get_type_signedness): Don't run off end of buffer
	printing DW_FORM_string attribute.
2021-07-02 23:19:43 +09:30
Alan Modra
62194b631d Re: Fix minor NDS32 renaming snafu
Some extern declarations differ in constnes to their definitions too.
Let's make sure this sort of thing doesn't happen again, but putting
the externs in a header where they belong.

gas/
	* config/tc-nds32.c (nds32_keyword_gpr): Don't declare.
	(md_begin): Constify k.
opcodes/
	* nds32-dis.c (nds32_find_reg_keyword): Constify arg and return.
	(nds32_parse_audio_ext, nds32_parse_opcode): Constify psys_reg.
	(nds32_field_table, nds32_opcode_table, nds32_keyword_table),
	(nds32_opcodes, nds32_operand_fields, nds32_keywords),
	(nds32_keyword_gpr): Move declarations to..
	* nds32-asm.h: ..here, constifying to match definitions.
2021-07-02 20:48:55 +09:30
Nick Clifton
af82b082c2 Fix minor NDS32 renaming snafu.
* config/tc-nds32.c: Change all references of keyword_gpr to
	nds32_keyword_gpr.
2021-07-02 10:45:02 +01:00
Mike Frysinger
7eb1f99ada sim: unify reserved instruction bits settings
Move these options up to the common dir so we only test & export
them once across all ports.

The setting only affects igen based ports, and they were turning
this on by default, so keep the default in place.
2021-07-01 20:53:00 -04:00
Mike Frysinger
313c332ff2 sim: m32r: merge with common configure script
Now that the traps code has been unified, the configure script has no
unique logic in it, so it can be merged into the single common one.
2021-07-01 20:48:07 -04:00
Mike Frysinger
54af62279c sim: m32r: reformat linux traps code
Do this as a sep commit to try and make the history easier to review.
2021-07-01 20:47:09 -04:00
Mike Frysinger
fe41f7211a sim: m32r: unify ELF & Linux traps logic
This makes the simulator work the same regardless of the target (bare
metal m32r-elf or Linux m32r-linux-gnu) by unifying the traps code.
It was mostly already the same with the only difference being support
for trap #2 reserved for Linux syscalls.  We can move that logic to
runtime by checking the current environment operating mode instead.
2021-07-01 20:46:11 -04:00
Mike Frysinger
d4a0121347 sim: m32r: replace custom endian helpers with sim-endian
This improves the logic a bit by making the host<->target translations
a bit more clear.  The structs still bleed way too much between the two
worlds, but let's fix one thing at a time.
2021-07-01 20:43:11 -04:00
Mike Frysinger
055a3f27e8 sim: m32r: fix virtual environment with Linux targets
We don't want to handle Linux syscalls when in the virtual environment,
just the user environment, so adjust the Linux traps logic to check for
that specifically (instead of just skipping the operating environment).

Also tweak some testcases to explicitly specify the environment they run
under rather than relying on the default matching their needs.  This gets
the tests passing for all m32r targets.
2021-07-01 20:38:07 -04:00