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
39
40
41
|
Qemu crashes with chrooted m68k
I'm using qemu-m68k 2.2.0 to chroot into a m68k coldfire linux, which works fine on the coldfire machine.
I've been able to use binfmt_msc and used the above code to use qemu with strace:
#include <unistd.h>
#include <string.h>
int main(int argc, char **argv, char **envp) {
char *newargv[argc + 4];
newargv[0] = argv[0];
newargv[1] = "-cpu";
newargv[2] = "cfv4e";
newargv[3] = "-strace";
memcpy(&newargv[4], &argv[1], sizeof(*argv) * (argc - 1));
newargv[argc + 3] = NULL;
return execve("/usr/bin/qemu-m68k", newargv, envp);
}
Everything works fine. I can run bash, busybox, ash, but when I try to run a ls or just type an invalid command, I got the attached sequence of messages, which end like so:
11351 waitpid(-1,0xf6fffa00,0x3) = -1 errno=10 (No child processes)
qemu: fatal: Illegal instruction: 0000 @ f6fffa30
D0 = ffffffff A0 = f67dcf50 F0 = 0000000000000000 ( 0)
D1 = 0000000a A1 = f66e0898 F1 = 0000000000000000 ( 0)
D2 = f6fffaa8 A2 = f67df268 F2 = 0000000000000000 ( 0)
D3 = 00000000 A3 = 00000000 F3 = 0000000000000000 ( 0)
D4 = 00000008 A4 = 800026c4 F4 = 0000000000000000 ( 0)
D5 = 00000000 A5 = f67d98e0 F5 = 0000000000000000 ( 0)
D6 = f6fffaa8 A6 = f6fffa7c F6 = 0000000000000000 ( 0)
D7 = 00000002 A7 = f6fffa24 F7 = 0000000000000000 ( 0)
PC = f6fffa30 SR = 0000 ----- FPRESULT = 0
Aborted
How can I debug it further to try to figure out if this is a qemu issue or not? Thanks
|