public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
From: "research_trasio at irq dot a4lg.com" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug gdb/29449] New: Crash on load when there's no shared library support
Date: Fri, 05 Aug 2022 16:19:38 +0000	[thread overview]
Message-ID: <bug-29449-4717@http.sourceware.org/bugzilla/> (raw)

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

            Bug ID: 29449
           Summary: Crash on load when there's no shared library support
           Product: gdb
           Version: HEAD
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: gdb
          Assignee: unassigned at sourceware dot org
          Reporter: research_trasio at irq dot a4lg.com
  Target Milestone: ---

Commit: master (99c902690493e35aad16b2083bad34cf79c366bf)
Target (Reproduced):
-   x86_64-unknown-elf
-   riscv64-unknown-elf
Target (NOT Reproduced):
-   x86_64-unknown-linux-gnu
-   riscv64-linux-gnu

When a target file (possibly with symbols?) is loaded, GDB crashes.

Excerpts from GDB is as follows (I used `gdb --batch -x a.txt' to reproduce the
bug quickly but it's just a file command):

Thread 1 "gdb" received signal SIGSEGV, Segmentation fault.
0x000055555598fa44 in solib_create_inferior_hook (from_tty=0) at
/home/builduser/src/binutils-gdb/gdb/solib.c:1274
1274      ops->solib_create_inferior_hook (from_tty);
(gdb) bt
#0  0x000055555598fa44 in solib_create_inferior_hook (from_tty=0) at
/home/builduser/src/binutils-gdb/gdb/solib.c:1274
#1  0x00005555559be0a6 in symbol_file_command (args=<optimized out>,
from_tty=0) at /home/builduser/src/binutils-gdb/gdb/symfile.c:1655
#2  0x00005555557f3aa1 in file_command (arg=0x555556009d95
"targets/opensbi/fw_dynamic.elf", from_tty=0) at
/home/builduser/src/binutils-gdb/gdb/exec.c:555
#3  0x000055555570b7f5 in cmd_func (cmd=<optimized out>, args=<optimized out>,
from_tty=<optimized out>) at
/home/builduser/src/binutils-gdb/gdb/cli/cli-decode.c:2516
#4  0x0000555555a0f5c1 in execute_command (p=<optimized out>,
p@entry=0x555556009d90 "file targets/opensbi/fw_dynamic.elf", from_tty=0) at
/home/builduser/src/binutils-gdb/gdb/top.c:699
#5  0x00005555557f0215 in command_handler (command=0x555556009d90 "file
targets/opensbi/fw_dynamic.elf") at
/home/builduser/src/binutils-gdb/gdb/event-top.c:598
#6  0x0000555555a1075f in read_command_file
(stream=stream@entry=0x55555611ef90) at
/home/builduser/src/binutils-gdb/gdb/top.c:468
#7  0x000055555571a6f4 in script_from_file (stream=stream@entry=0x55555611ef90,
file=file@entry=0x7fffffffe532 "a.txt") at
/home/builduser/src/binutils-gdb/gdb/cli/cli-script.c:1625
#8  0x0000555555708193 in source_script_from_stream
(file_to_open=0x7fffffffdd30 "a.txt", file=0x7fffffffe532 "a.txt",
stream=0x55555611ef90) at
/home/builduser/src/binutils-gdb/gdb/cli/cli-cmds.c:715
#9  source_script_with_search (file=0x7fffffffe532 "a.txt", file@entry=<error
reading variable: value has been optimized out>, from_tty=<error reading
variable: value has been optimized out>, search_path=<error reading variable:
value has been optimized out>) at
/home/builduser/src/binutils-gdb/gdb/cli/cli-cmds.c:760
#10 0x0000555555883e23 in catch_command_errors (command=<optimized out>,
arg=<optimized out>, from_tty=<optimized out>, do_bp_actions=<optimized out>)
at /home/builduser/src/binutils-gdb/gdb/main.c:513
#11 0x0000555555883eb8 in execute_cmdargs
(cmdarg_vec=cmdarg_vec@entry=0x7fffffffdeb0,
file_type=file_type@entry=CMDARG_FILE, cmd_type=cmd_type@entry=CMDARG_COMMAND,
ret=ret@entry=0x7fffffffdea4) at
/home/builduser/src/binutils-gdb/gdb/main.c:605
#12 0x000055555588593d in captured_main_1 (context=<optimized out>) at
/home/builduser/src/binutils-gdb/gdb/main.c:1298
#13 0x000055555588650f in captured_main (data=0x7fffffffe0c0) at
/home/builduser/src/binutils-gdb/gdb/main.c:1319
#14 gdb_main (args=args@entry=0x7fffffffe0f0) at
/home/builduser/src/binutils-gdb/gdb/main.c:1344
#15 0x0000555555635e00 in main (argc=<optimized out>, argv=<optimized out>) at
/home/builduser/src/binutils-gdb/gdb/gdb.c:32
(gdb)


I bisected and found that commit cb275538dbddfbb3c2c372a665ac48e6f617ea33 is
the cause of this bug.

I think this crash happens when there's no shared library support (where
default solib data must be used and no one calls the set_solib_ops function). 
The same commit with x86_64-unknown-linux-gnu and riscv64-linux-gnu targets
were fine.
For such cases, current_target_so_ops should be used but... this is not used
anywhere, causing NULL target_so_ops to be used.

The only reason I haven't submitted the patch to fix this bug is because I
haven't completed the copyright assignment for my GDB contribution.
I think I shared enough information to reproduce and fix this bug but tell me
if not.

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

             reply	other threads:[~2022-08-05 16:19 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-05 16:19 research_trasio at irq dot a4lg.com [this message]
2022-08-05 16:20 ` [Bug gdb/29449] " research_trasio at irq dot a4lg.com
2022-08-05 16:32 ` research_trasio at irq dot a4lg.com
2022-08-07  5:39 ` [Bug gdb/29449] Crash on load when the target does not support shared libraries research_trasio at irq dot a4lg.com
2022-08-08 14:33 ` tromey at sourceware dot org
2022-08-08 15:13 ` tromey at sourceware dot org
2022-08-08 16:02 ` tromey at sourceware dot org
2022-08-08 16:06 ` cvs-commit at gcc dot gnu.org
2022-08-08 16:07 ` tromey at sourceware dot org
2022-08-09  2:36 ` research_trasio at irq dot a4lg.com

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-29449-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).