Browse Source

Handle PPC64 function descriptor in Ada decoding

On PPC64, the entry point of the function "FN" is ".FN" when a function
descriptor is used. One of the consequences of this is that GDB then
presents the name of the function to the user (eg: in backtraces) with
the leading dot, which is a low-level internal detail that the user
should not be seeing.  The Ada decoding should strip it.

gdb/ChangeLog:

	* ada-lang.c (ada_decode): strip dot prefix in symbol name.

No testcase added, as a number of existing testcases should already
demonstrate that problem.
users/ahayward/variable_sve
Jerome Guitton 8 years ago
committed by Joel Brobecker
parent
commit
0d81f350ec
  1. 4
      gdb/ChangeLog
  2. 5
      gdb/ada-lang.c

4
gdb/ChangeLog

@ -1,3 +1,7 @@
2018-09-08 Jerome Guitton <guitton@adacore.com>
* ada-lang.c (ada_decode): strip dot prefix in symbol name.
2018-09-08 Joel Brobecker <brobecker@adacore.com>
* ada-lang.c (ada_exception_sal): Replace gdb_assert calls

5
gdb/ada-lang.c

@ -1164,6 +1164,11 @@ ada_decode (const char *encoded)
static char *decoding_buffer = NULL;
static size_t decoding_buffer_size = 0;
/* With function descriptors on PPC64, the value of a symbol named
".FN", if it exists, is the entry point of the function "FN". */
if (encoded[0] == '.')
encoded += 1;
/* The name of the Ada main procedure starts with "_ada_".
This prefix is not part of the decoded name, so skip this part
if we see this prefix. */

Loading…
Cancel
Save