From 978efd6aac65bc1e025472859eb738839425318b Mon Sep 17 00:00:00 2001 From: pbrook Date: Sat, 17 Jun 2006 18:30:42 +0000 Subject: Respond to qOffsets gdb packet (for debugging bFLT binaries). git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1986 c046a42c-6fe2-441c-8c8c-71466251a162 --- linux-user/flatload.c | 3 +++ linux-user/main.c | 1 + linux-user/qemu.h | 3 +++ 3 files changed, 7 insertions(+) (limited to 'linux-user') diff --git a/linux-user/flatload.c b/linux-user/flatload.c index 1e2634b..bf55be2 100644 --- a/linux-user/flatload.c +++ b/linux-user/flatload.c @@ -783,6 +783,9 @@ int load_flt_binary(struct linux_binprm * bprm, struct target_pt_regs * regs, info->start_brk = libinfo[0].start_brk; info->start_stack = sp; info->entry = start_addr; + info->code_offset = info->start_code; + info->data_offset = info->start_data - libinfo[0].text_len; + DBG_FLT("start_thread(entry=0x%x, start_stack=0x%x)\n", (int)info->entry, (int)info->start_stack); diff --git a/linux-user/main.c b/linux-user/main.c index 49b2166..5b4182b 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -1541,6 +1541,7 @@ int main(int argc, char **argv) memset(ts, 0, sizeof(TaskState)); env->opaque = ts; ts->used = 1; + ts->info = info; env->user_mode_only = 1; #if defined(TARGET_I386) diff --git a/linux-user/qemu.h b/linux-user/qemu.h index 9047fcf..218e846 100644 --- a/linux-user/qemu.h +++ b/linux-user/qemu.h @@ -27,6 +27,8 @@ struct image_info { unsigned long rss; unsigned long start_stack; unsigned long entry; + target_ulong code_offset; + target_ulong data_offset; int personality; }; @@ -73,6 +75,7 @@ typedef struct TaskState { uint32_t v86mask; #endif int used; /* non zero if used */ + struct image_info *info; uint8_t stack[0]; } __attribute__((aligned(16))) TaskState; -- cgit v1.1