summary refs log tree commit diff stats
path: root/results/classifier/zero-shot/108/none/2590
blob: 642fac1a80eb763e51f0b37c728bd4e5e10d8480 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
device: 0.101
graphic: 0.092
debug: 0.037
permissions: 0.033
semantic: 0.030
PID: 0.030
other: 0.028
vnc: 0.013
socket: 0.013
performance: 0.011
boot: 0.010
network: 0.007
files: 0.003
KVM: 0.001

qemu-x86_64: gdb doesn't read symbols from dynamically linked shared libraries.
Description of problem:
GDB fails to load dynamically linked shared libraries when connecting to qemu-x86_64, causing it to not recognize symbols from the shared libraries. As a result, breakpoints in shared library functions (e.g, `break printf`) do not work.
Steps to reproduce:
1. Start the debug server: `./qemu-x86_64 -g PORT ./x86_64-binary`
2. Connect GDB to the debug server:
```
$ gdb-multiarch ./x86_64-binary
(gdb) set verbose on
(gdb) target remote :PORT
```
3. GDB displays a warning and fails to load shared libraries:
```
(gdb) target remote :PORT
Remote debugging using :PORT
warning: platform-specific solib_create_inferior_hook did not load initial shared libraries.
(gdb) info sharedlibrary
No shared libraries loaded at this time.
```
Additional information:
This issue does not occur when using gdbserver on a native x86_64 machine and connecting to it from gdb-multiarch on an ARM64 machine, indicating the issue is likely related to QEMU rather than GDB. 

GDB correctly recognizes symbols from the target binary (e.g., the `main` function), and breakpoints at these symbols function as expected.