On Wednesday 3. April 2019 07.56.32 Adam Lackorzynski wrote:
On Thu Mar 28, 2019 at 23:28:17 +0100, Paul Boddie wrote:
In order to try and identify the problem, I used the following command:
addr2line -e ~/L4/L4Linux/l4linux/mybuild/vmlinux 0x46980b
This seems to indicate that the point of failure is at line 2727 in arch/l4/kernel/main.c which is the start of this function:
int __ref L4_CV main(int argc, char **argv)
So, I wonder what the problem might be that leads to a crash as the main function is being invoked. Have I missed anything obvious?
Guess not except that doing this on UX could be a bit adventurous nowadays. Which instruction is sitting at 0x46980b?
I used this command to check:
objdump -d -S ~/L4/L4Linux/l4linux/mybuild/vmlinux
Here's the instruction in context (as the third from the end):
004697f0 <main>: { 4697f0: 55 push %ebp 4697f1: 89 e5 mov %esp,%ebp 4697f3: 57 push %edi 4697f4: 56 push %esi LOG_printf("%s", linux_banner); 4697f5: be 80 40 47 00 mov $0x474080,%esi { 4697fa: 53 push %ebx 4697fb: 81 ec 9c 01 00 00 sub $0x19c,%esp LOG_printf("\033[34;1m======> L4Linux starting... <========\033[0m\n"); 469801: c7 04 24 c8 b5 4e 00 movl $0x4eb5c8,(%esp) { 469808: 8b 5d 0c mov 0xc(%ebp),%ebx 46980b: 65 a1 14 00 00 00 mov %gs:0x14,%eax 469811: 89 45 f0 mov %eax,-0x10(%ebp) 469814: 31 c0 xor %eax,%eax
So, it seems to be storing a register value into a particular segment, as far as I can tell. I hope this is helpful.
Paul