blob: d603a8395a037dbe7e39d16d389dfda4dfc023a7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
|
The bug report describes an issue where the `-d in_asm` option outputs incorrect information about memory sections when running QEMU versions 0.14.0 and later compared to earlier versions like 0.12.5. The user provided a patch that corrects the output by modifying how addresses are calculated in `exec.c`.
The problem arises from changes in how memory regions are walked, specifically in the calculation of guest addresses. In QEMU 0.14.0, the address is shifted by `V_L1_SHIFT`, which is 10 bits for i386, whereas the correct shift should include both `V_L1_SHIFT` and `TARGET_PAGE_BITS` (which is 12 bits) to properly align memory regions.
The user's patch adjusts the calculation in `walk_memory_regions_1` to use `(abi_ulong)i << (V_L1_SHIFT + TARGET_PAGE_BITS)` instead of just shifting by `V_L1_SHIFT`. This correction ensures that the memory sections are correctly aligned and displayed, matching the behavior observed in QEMU 0.12.5.
The issue is related to how QEMU handles memory regions during runtime, particularly when logging guest address spaces. Therefore, it falls under a **runtime** error since it pertains to incorrect behavior during the execution of the program rather than an instruction-level fault or a syscall issue.
**Answer:** runtime
|