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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
runtime: 0.431
instruction: 0.330
syscall: 0.239
Invalid guest addr in debug output
Description of problem:
When using QEMU 7.1.0 the log file for the first translation block (not starting at 0) looks like this:
(Note the `guest addr 0x00010000`)
```
IN:
0x00010000: e1a00000 mov r0, r0
0x00010004: e1a00000 mov r0, r0
0x00010008: e1a00000 mov r0, r0
0x0001000c: e1a00000 mov r0, r0
0x00010010: e1a00000 mov r0, r0
0x00010014: e1a00000 mov r0, r0
0x00010018: e1a00000 mov r0, r0
0x0001001c: e1a00000 mov r0, r0
0x00010020: ea000005 b #0x1003c
OUT: [size=47]
-- guest addr 0x00010000 + tb prologue
0x7f95a8000300: 8b 5d f0 movl -0x10(%rbp), %ebx
0x7f95a8000303: 85 db testl %ebx, %ebx
0x7f95a8000305: 0f 8c 18 00 00 00 jl 0x7f95a8000323
-- guest addr 0x00010020
0x7f95a800030b: e9 00 00 00 00 jmp 0x7f95a8000310
0x7f95a8000310: c7 45 3c 3c 00 01 00 movl $0x1003c, 0x3c(%rbp)
0x7f95a8000317: 48 8d 05 22 ff ff ff leaq -0xde(%rip), %rax
0x7f95a800031e: e9 f5 fc ff ff jmp 0x7f95a8000018
0x7f95a8000323: 48 8d 05 19 ff ff ff leaq -0xe7(%rip), %rax
0x7f95a800032a: e9 e9 fc ff ff jmp 0x7f95a8000018
```
For QEMU 7.2.0 and higher:
(Note the `guest addr` is only the page offset.)
```
Trace 0: 0x7fe434000100 [00000400/00000000/00000020/ff200000]
----------------
IN:
0x00010000: e1a00000 mov r0, r0
0x00010004: e1a00000 mov r0, r0
0x00010008: e1a00000 mov r0, r0
0x0001000c: e1a00000 mov r0, r0
0x00010010: e1a00000 mov r0, r0
0x00010014: e1a00000 mov r0, r0
0x00010018: e1a00000 mov r0, r0
0x0001001c: e1a00000 mov r0, r0
0x00010020: ea000005 b #0x1003c
OUT: [size=52]
-- guest addr 0x00000000 + tb prologue
0x7fe434000340: 8b 5d f0 movl -0x10(%rbp), %ebx
0x7fe434000343: 85 db testl %ebx, %ebx
0x7fe434000345: 0f 8c 1d 00 00 00 jl 0x7fe434000368
-- guest addr 0x00000020
0x7fe43400034b: 8b 5d 3c movl 0x3c(%rbp), %ebx
0x7fe43400034e: 83 c3 3c addl $0x3c, %ebx
0x7fe434000351: 89 5d 3c movl %ebx, 0x3c(%rbp)
0x7fe434000354: 66 66 90 nop
0x7fe434000357: e9 00 00 00 00 jmp 0x7fe43400035c
0x7fe43400035c: 48 8d 05 1d ff ff ff leaq -0xe3(%rip), %rax
0x7fe434000363: e9 b0 fc ff ff jmp 0x7fe434000018
0x7fe434000368: 48 8d 05 14 ff ff ff leaq -0xec(%rip), %rax
0x7fe43400036f: e9 a4 fc ff ff jmp 0x7fe434000018
```
Steps to reproduce:
1. Run the provided command line for any kernel / system image. (likely other architectures are affected as well)
2. Look into the debug log.
Additional information:
While looking if this was already reported I found #1528 and #1697 which could potentially caused by this. It might as well be just an oversight in the debug output.
|