From 20b074d81c4e23d687caf238d200a23288f5651c Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Wed, 10 Aug 2011 09:55:59 -0700 Subject: [PATCH] add additional error messages --- kernel/tasks.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/kernel/tasks.c b/kernel/tasks.c index c941e57e..2dec1348 100644 --- a/kernel/tasks.c +++ b/kernel/tasks.c @@ -419,6 +419,7 @@ static int load_task(load_args_t* largs) //elf_section_header_t sec_header; vfs_node_t* node; task_t* curr_task = per_core(current_task); + int err; if (!largs) return -EINVAL; @@ -427,7 +428,12 @@ static int load_task(load_args_t* largs) if (!node) return -EINVAL; - read_fs(node, (uint8_t*)&header, sizeof(elf_header_t), 0); + err = read_fs(node, (uint8_t*)&header, sizeof(elf_header_t), 0); + if (err < 0) { + kprintf("read_fs failed: %d\n", err); + return err; + } + if (BUILTIN_EXPECT(header.ident.magic != ELF_MAGIC, 0)) goto invalid; @@ -595,6 +601,12 @@ static int load_task(load_args_t* largs) invalid: kprintf("Invalid executable!\n"); + kprintf("magic number 0x%x\n", (uint32_t) header.ident.magic); + kprintf("header type 0x%x\n", (uint32_t) header.type); + kprintf("machine type 0x%x\n", (uint32_t) header.machine); + kprintf("elf ident class 0x%x\n", (uint32_t) header.ident._class); + kprintf("elf identdata !0x%x\n", header.ident.data); + kprintf("program entry point 0x%x\n", (size_t) header.entry); return -EINVAL; }