diff options
Diffstat (limited to 'results/scraper/box64/2645')
| -rw-r--r-- | results/scraper/box64/2645 | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/results/scraper/box64/2645 b/results/scraper/box64/2645 new file mode 100644 index 000000000..1877cb199 --- /dev/null +++ b/results/scraper/box64/2645 @@ -0,0 +1,63 @@ +[wine] SIGSEGV in JIT stub (`CALL Ed`) when running box64 wine64 control +I encountered a segmentation fault while running `box64 wine64 control` on RISC-V [Voyager](https://www.andestech.com/en/2024/05/30/andes-technology-announced-the-qilai-soc-and/) (quad-core RISC-V AX45MP cluster and one NX27V vector processor) with dynarec and GDB JIT enabled. +Box64 crashed at `CALL Ed` in the emitted JIT code(`rv64_prolog.S:82`). + +### Crash Log +which should be `[BOX64] Using emulated /home/jkchiu/Downloads/wine/bin/../lib/wine/x86_64-unix/ntdll.so` +``` +[BOX64] 36321|SIGSEGV @0x3ff7236060 (???(0x3ff7236060)) (x64pc=0x1000010f4/"/root/Downloads/wine/bin/wine64/_start + 0x24", rsp=0x3ff7db84b8, stack=0x3ff75b9000:0x3ff7db9000 own=(nil) fp=(nil)), for accessing 0x35c3cebe (code=2/prot=0), db=0x3ff7dbe980(0x3ff7236010:0x3ff72360d8/0x1000010d0:0x1000010fa//root/Downloads/wine/bin/wine64/_start:clean, hash:4fd74e48/4fd74e48) handler=(nil) +RAX:0x0000000035c51571 RCX:0x0000000100001250 RDX:0x0000003ff7db84c8 RBX:0x0000000000000000 +RSP:0x0000003ff7db84b8 RBP:0x0000000000000000 RSI:0x000000000000006e RDI:0x0000000100000d60 + R8:0x00000001000012c0 R9:0x0000000060000080 R10:0x0000000000000000 R11:0x0000000000000000 +R12:0x0000000000000000 R13:0x0000000000000000 R14:0x0000000000000000 R15:0x0000000000000000 +ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053 +RSP-0x20:0x0000000000000000 RSP-0x18:0x0000000000000000 RSP-0x10:0x0000000000000000 RSP-0x08:0x0000000000000000 +RSP+0x00:0x0000003ff7db84c0 RSP+0x08:0x0000000060000080 RSP+0x10:0x0000000000000002 RSP+0x18:0x0000003ff7db868d x64opcode=FF 15 E6 0E 20 00 F4 0F (opcode=feeb338b) +``` +In GDB: +``` +Program received signal SIGSEGV, Segmentation fault. +0x0000003ff7236060 in 10d0 () at /tmp/box64gdbjit-4ilAQo.S:22 +22 CALL Ed +``` + +### JIT Assembly Snippet +The code generated at `/tmp/box64gdbjit-F8JP6k.S` is: +``` +XOR Ed, Gd +MOV Ed, Gd +POP reg +MOV Ed, Gd +AND Ed, Ib +PUSH reg +PUSH reg +LEA Gd, Ed +LEA Gd, Ed +LEA Gd, Ed +CALL Ed. # ← crashes here +``` + + + + +### Environment + +1. Box64 version: Box64 riscv64 v0.3.5 16bdcc0c with Dynarec built on May 19 2025 +2. Build flags: + ``` +cmake -G Ninja \ + -DBOX32=ON \ + -DRV64=1 \ + -DRV64_DYNAREC=ON \ + -DGDBJIT=ON \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_C_COMPILER=gcc \ + .. +``` +3. Platform: RISC-V 64, Debian (chroot) +4. CPU: 4× cores(Andes AX45MP), Little Endian +5. Wine version : Wine 10.0 from [Wine-Builds](https://github.com/Kron4ek/Wine-Builds) +6. page size 4096 +7. Kernel: 6.1.47+ +8. gcc (Debian 14.2.0-19) 14.2.0 +9. dd (Debian GLIBC 2.41-7) 2.41 \ No newline at end of file |