public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
From: "k4lizen at proton dot me" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug gdb/31669] New: wrong "info symbol" output, symbol shadowing, __dso_handle
Date: Mon, 22 Apr 2024 12:31:07 +0000	[thread overview]
Message-ID: <bug-31669-4717@http.sourceware.org/bugzilla/> (raw)

https://sourceware.org/bugzilla/show_bug.cgi?id=31669

            Bug ID: 31669
           Summary: wrong "info symbol" output, symbol shadowing,
                    __dso_handle
           Product: gdb
           Version: 13.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: gdb
          Assignee: unassigned at sourceware dot org
          Reporter: k4lizen at proton dot me
  Target Milestone: ---

Created attachment 15478
  --> https://sourceware.org/bugzilla/attachment.cgi?id=15478&action=edit
The file I encountered this issue with

gdb version: GNU gdb (Debian 13.2-1) 13.2
OS: Linux kali 6.6.9-amd64

In the attachment is the ELF I encountered the issue with. I initially
submitted an issue downstream: https://github.com/pwndbg/pwndbg/issues/2116.
Due to the way "info symbol" is used in pwndbg, it would be nice if this bug
was patched.

The issue:
Doing `info symbol 0x402367` gives `__dso_handle + 863 [...]` although the
value stored at 0x402367 has nothing to do with __dso_handle. The values at
0x402367 and 0x402a27 are the strings "r" and "./flag.txt" which are passed to
fopen near the start of the main function.

Notable:
+ The __dso_handle symbol seems to be registered even before libc is loaded,
but after libc is loaded doing "p __dso_handle" prints the symbol in libc. Is
the symbol supposed to be there before libc is loaded? It exists before libc in
multiple elfs I tried.

+ Is there a way to make "print" print the value of __dso_handle in
terminal.bin after libc is loaded?

+ I'm not sure if the bug is in "info symbol" and how it checks when a symbol
"ends" or with the handling of __dso_handle in particular.

===============
hacker@kali ~/m/gdbbugsymbols> gdb terminal.bin
GNU gdb (Debian 13.2-1) 13.2
[..copyright snip..]
Reading symbols from terminal.bin...
(No debugging symbols found in terminal.bin)
(gdb) x &__dso_handle
0x402008:       0x00000000
(gdb) break main
Breakpoint 1 at 0x401d9e
(gdb) run
Starting program: /home/hacker/mine/gdbbugsymbols/terminal.bin
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Breakpoint 1, 0x0000000000401d9e in main ()
(gdb) x &__dso_handle
0x7ffff7f9a780 <__dso_handle>:  0xf7f9a780
(gdb) info symbol 0x402367
__dso_handle + 863 in section .rodata of
/home/hacker/mine/gdbbugsymbols/terminal.bin
(gdb) info symbol 0x402008
__dso_handle in section .rodata of /home/hacker/mine/gdbbugsymbols/terminal.bin
(gdb) info symbol 0x7ffff7f9a780
__dso_handle in section .data.rel.ro of /lib/x86_64-linux-gnu/libc.so.6
(gdb)
===============

-- 
You are receiving this mail because:
You are on the CC list for the bug.

             reply	other threads:[~2024-04-22 12:31 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-22 12:31 k4lizen at proton dot me [this message]
2024-04-22 12:34 ` [Bug gdb/31669] " k4lizen at proton dot me
2024-04-24 22:02 ` dominik.b.czarnota+bugzilla at gmail dot com
2024-04-24 22:09 ` dominik.b.czarnota+bugzilla at gmail dot com
2024-04-24 22:27 ` schwab@linux-m68k.org
2024-04-24 23:36 ` dominik.b.czarnota+bugzilla at gmail dot com
2024-04-25 16:54 ` k4lizen at proton dot me
2024-04-26 14:39 ` sam at gentoo dot org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-31669-4717@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=gdb-prs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).