qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] linux-user: Support gdb 'qOffsets' query for ELF
@ 2019-08-16 23:34 Josh Kunz via Qemu-devel
  2019-08-16 23:36 ` Josh Kunz via Qemu-devel
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Josh Kunz via Qemu-devel @ 2019-08-16 23:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, riku.voipio, laurent, Josh Kunz

This is needed to support debugging PIE ELF binaries running under QEMU
user mode. Currently, `code_offset` and `data_offset` remain unset for
all ELF binaries, so GDB is unable to correctly locate the position of
the binary's text and data.

The fields `code_offset`, and `data_offset` were originally added way
back in 2006 to support debugging of bFMT executables (978efd6aac6),
and support was just never added for ELF. Since non-PIE binaries are
loaded at exactly the address specified in the binary, GDB does not need
to relocate any symbols, so the buggy behavior is not normally observed.

Buglink: https://bugs.launchpad.net/qemu/+bug/1528239
Signed-off-by: Josh Kunz <jkz@google.com>
---
 linux-user/elfload.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index 3365e192eb..ceac035208 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -2380,6 +2380,8 @@ static void load_elf_image(const char *image_name, int image_fd,
     }
 
     info->load_bias = load_bias;
+    info->code_offset = load_bias;
+    info->data_offset = load_bias;
     info->load_addr = load_addr;
     info->entry = ehdr->e_entry + load_bias;
     info->start_code = -1;
-- 
2.23.0.rc1.153.gdeed80330f-goog



^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-09-10  8:24 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-16 23:34 [Qemu-devel] [PATCH] linux-user: Support gdb 'qOffsets' query for ELF Josh Kunz via Qemu-devel
2019-08-16 23:36 ` Josh Kunz via Qemu-devel
2019-08-17  1:35 ` no-reply
2019-08-26  8:29 ` Laurent Vivier
2019-09-03 19:19   ` Josh Kunz via Qemu-devel
2019-09-04  5:23     ` Laurent Vivier
2019-09-05 10:54     ` Philippe Mathieu-Daudé
2019-09-10  8:23 ` Laurent Vivier

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 NNTP newsgroup(s).