Debian Patches

Status for gdb/13.1-3

Patch Description Author Forwarded Bugs Origin Last update
gdb-fortran-main.patch gdb-fortran-main
Daniel,

Although the proper way of adding case insensitivity to symbol lookup is
still under discussion, I think it might be desirable to set the main
function of Fortran programs to "MAIN__" first. Because it can at least
let GDB recognize that the language is Fortran after loading a Fortran
executable only. What is your idea on this? Please comments. TIA!

Here is the patch to set the main function in Fortran programs to
"MAIN__". And followed is a patch to verify this. Tested with g77 and
gfortran on x86, and g77 on ppc64. With the first patch, it reported
PASS; without, report FAIL. No regression is found in gdb.fortran
testcases.

P.S: if there is a symbol named "MAIN__" in sources of other languages, it
might disturb the debugging. But I am not sure how much it is.
=?utf-8?b?SMOpY3RvciBPcsOzbiBNYXJ0w61uZXo=?= <zumbi@debian.org> no 2019-02-20
solve_PATH_MAX_issue.patch Patch out a PATH_MAX usage, for Hurd's benefit Svante Signell <svante.signell@gmail.com> yes debian 2013-06-08
gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=185337

2008-02-24 Jan Kratochvil <jan.kratochvil@redhat.com>

Port to GDB-6.8pre.

currently for trivial nonthreaded helloworld with no debug info up to -ggdb2 you
will get:
(gdb) p errno
[some error]

* with -ggdb2 and less "errno" in fact does not exist anywhere as it was
compiled to "(*__errno_location ())" and the macro definition is not present.
Unfortunately gdb will find the TLS symbol and it will try to access it but
as the program has been compiled without -lpthread the TLS base register
(%gs on i386) is not setup and it will result in:
Cannot access memory at address 0x8

Attached suggestion patch how to deal with the most common "errno" symbol
for the most common under-ggdb3 compiled programs.

Original patch hooked into target_translate_tls_address. But its inferior
call invalidates `struct frame *' in the callers - RH BZ 690908.

https://bugzilla.redhat.com/show_bug.cgi?id=1166549


2007-11-03 Jan Kratochvil <jan.kratochvil@redhat.com>

* ./gdb/dwarf2read.c (read_partial_die, dwarf2_linkage_name): Prefer
DW_AT_MIPS_linkage_name over DW_AT_name now only for non-C.

glibc-debuginfo-2.7-2.x86_64: /usr/lib/debug/lib64/libc.so.6.debug:
<81a2> DW_AT_name : (indirect string, offset: 0x280e): __errno_location
<81a8> DW_AT_MIPS_linkage_name: (indirect string, offset: 0x2808): *__GI___errno_location
Jan Kratochvil <jan.kratochvil@redhat.com> no debian vendor, http://pkgs.fedoraproject.org/cgit/gdb.git/tree/gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch 2019-02-20
gdb-glibc-vdso-workaround.patch [RFC] Work around PR libc/13097 "linux-vdso.so.1" #2
Hi,

missed the x86_64-m32 case:

gdb/
2011-08-16 Jan Kratochvil <jan.kratochvil@redhat.com>

Work around PR libc/13097.
* solib.c (update_solib_list): Ignore "linux-vdso.so.1".
=?utf-8?b?SMOpY3RvciBPcsOzbiBNYXJ0w61uZXo=?= <zumbi@debian.org> no 2019-02-20
load-versioned-libcc1.patch load-versioned-libcc1
* d/p/load-versioned-libcc1.patch:
- load libcc1.so.0 instead unversioned file.
Hector Oron <zumbi@debian.org> no 2019-02-20
gdb_configure.nat.patch gdb_configure.nat
===================================================================
=?utf-8?b?SMOpY3RvciBPcsOzbiBNYXJ0w61uZXo=?= <zumbi@debian.org> no 2019-02-20
fork-inferior-fix =================================================================== no
fix-build.patch =================================================================== invalid Debian 2022-10-12
fix-crash-in-inside_main_func.patch gdb 13.1 crashes while running the rust compiler's debugger tests.
The crash has a number of causes.

First, the rust compiler still uses the C++-like _Z mangling, but with
its own twist -- some hex digits added to the end of a symbol. So,
while gdb finds the correct name of "main":

(top-gdb) p name
$13 = 0x292e0c0 "rustc_gdb_1031745::main"

It isn't found in the minsyms, because C++ demangling yields:

[99] t 0x90c0 _ZN17rustc_gdb_10317454main17h5b5be7fe16a97225E section .text rustc_gdb_1031745::main::h5b5be7fe16a97225 zko06yobckx336v

This could perhaps be fixed. I also filed a new PR to suggest
preferring the linkage name of the main program.

Next, the rust compiler emits both a DW_TAG_subprogram and a
DW_TAG_namespace for "main". This happens because the file is named
"main.rs" -- i.e., the bug is specific to the source file name. The
crash also seems to require the nested function inside of 'main', at
least for me. The namespace always is generated, but perhaps this
changes the ordering in the DWARF.

When inside_main_func looks up the main symbol, it finds the namespace
symbol rather than the function. (I filed a bug about fixing gdb's
symbol tables -- long overdue.)

Meanwhile, as I think it's important to fix this crash sooner rather
than later, this patch changes inside_main_func to check that the
symbol that is found is LOC_BLOCK. This perhaps should have been done
in the first place, anyway.
yes upstream
aarch64-pauth-registers.patch [PATCH] aarch64: Check for valid inferior thread/regcache before reading pauth registers

There were reports of gdb throwing internal errors when calling
inferior_thread ()/get_current_regcache () on a system with
Pointer Authentication enabled.

In such cases, gdb produces the following backtrace, or a variation
of it (for gdb's with the non-address removal implemented only in
the aarch64-linux-tdep.c file).

../../../repos/binutils-gdb/gdb/thread.c:86: internal-error: inferior_thread: Assertion `current_thread_ != nullptr' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Luis Machado <luis.machado@arm.com> no 2023-03-24

All known versions for source package 'gdb'

Links