[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [Bug 1235306] [NEW] Wrong memory viewer in 16 bit mode (Deb
From: |
Leonid Myravjev |
Subject: |
[Qemu-devel] [Bug 1235306] [NEW] Wrong memory viewer in 16 bit mode (Debugging BIOS OptionROM) |
Date: |
Fri, 04 Oct 2013 15:07:33 -0000 |
Public bug reported:
Hi.
I would like tracing on OptionROM program in gdb.
I make loop on OptionROM kind:
Label:
nop
nop
nop
nop
jmp Label
I build it for .286 (16 bit mode). I get LST file:
144 00CA Label proc far ; CODE XREF: seg000:0003
145 00CA 90 nop
146 00CB 90 nop
147 00CC 90 nop
148 00CD 90 nop
149 00CE 90 nop
150 00CF EB F9 jmp Label
I run it from QEMU, wait looping and attach GDB.
I saw: (when I type "stepi")
0x000000cb in ?? ()
0x000000cc in ?? ()
0x000000cd in ?? ()
0x000000ce in ?? ()
0x000000cf in ?? ()
0x000000ca in ?? ()
0x000000cb in ?? ()
0x000000cc in ?? ()
It is a loop "nop" cycle.
I make disassable this code and saw:
=> 0x000000ca: add %dh,%al
0x000000cc: push %ebx
0x000000cd: incl (%eax)
0x000000cf: lock push %ebx
0x000000d1: incl (%eax)
0x000000d3: lock push %ebx
0x000000d5: incl (%eax)
0x000000d7: lock push %ebx
(gdb) x /16xw 0xca
0xca: 0xff53f000 0xff53f000 0xff53f000 0xff53f000
0xda: 0xff53f000 0xff53f000 0xff53f000 0xff53f000
0xea: 0xff53f000 0xff53f000 0xff53f000 0xff53f000
0xfa: 0xff53f000 0xec59f000 0xff53f000 0xff53f000
>From QEMU shell I wrote and saw:
(QEMU) x /16w 0xca
000000ca: 0xff53f000 0xff53f000 0xff53f000 0xff53f000
000000da: 0xff53f000 0xff53f000 0xff53f000 0xff53f000
000000ea: 0xff53f000 0xff53f000 0xff53f000 0xff53f000
000000fa: 0xff53f000 0xec59f000 0xff53f000 0xff53f000
I try change source code:
set *0xca=0x90909090
set *0xca=0x90909090
But remained in the cycle turns:
0x000000cf in ?? ()
0x000000ca in ?? ()
0x000000cb in ?? ()
0x000000cc in ?? ()
0x000000cd in ?? ()
0x000000ce in ?? ()
0x000000cf in ?? ()
0x000000ca in ?? ()
Clearly that QEMU executes code in another memory area.
How do I find address? How do I can switch the QEMU on valid offset?
** Affects: qemu
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1235306
Title:
Wrong memory viewer in 16 bit mode (Debugging BIOS OptionROM)
Status in QEMU:
New
Bug description:
Hi.
I would like tracing on OptionROM program in gdb.
I make loop on OptionROM kind:
Label:
nop
nop
nop
nop
jmp Label
I build it for .286 (16 bit mode). I get LST file:
144 00CA Label proc far ; CODE XREF: seg000:0003
145 00CA 90 nop
146 00CB 90 nop
147 00CC 90 nop
148 00CD 90 nop
149 00CE 90 nop
150 00CF EB F9 jmp Label
I run it from QEMU, wait looping and attach GDB.
I saw: (when I type "stepi")
0x000000cb in ?? ()
0x000000cc in ?? ()
0x000000cd in ?? ()
0x000000ce in ?? ()
0x000000cf in ?? ()
0x000000ca in ?? ()
0x000000cb in ?? ()
0x000000cc in ?? ()
It is a loop "nop" cycle.
I make disassable this code and saw:
=> 0x000000ca: add %dh,%al
0x000000cc: push %ebx
0x000000cd: incl (%eax)
0x000000cf: lock push %ebx
0x000000d1: incl (%eax)
0x000000d3: lock push %ebx
0x000000d5: incl (%eax)
0x000000d7: lock push %ebx
(gdb) x /16xw 0xca
0xca: 0xff53f000 0xff53f000 0xff53f000 0xff53f000
0xda: 0xff53f000 0xff53f000 0xff53f000 0xff53f000
0xea: 0xff53f000 0xff53f000 0xff53f000 0xff53f000
0xfa: 0xff53f000 0xec59f000 0xff53f000 0xff53f000
From QEMU shell I wrote and saw:
(QEMU) x /16w 0xca
000000ca: 0xff53f000 0xff53f000 0xff53f000 0xff53f000
000000da: 0xff53f000 0xff53f000 0xff53f000 0xff53f000
000000ea: 0xff53f000 0xff53f000 0xff53f000 0xff53f000
000000fa: 0xff53f000 0xec59f000 0xff53f000 0xff53f000
I try change source code:
set *0xca=0x90909090
set *0xca=0x90909090
But remained in the cycle turns:
0x000000cf in ?? ()
0x000000ca in ?? ()
0x000000cb in ?? ()
0x000000cc in ?? ()
0x000000cd in ?? ()
0x000000ce in ?? ()
0x000000cf in ?? ()
0x000000ca in ?? ()
Clearly that QEMU executes code in another memory area.
How do I find address? How do I can switch the QEMU on valid offset?
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1235306/+subscriptions
- [Qemu-devel] [PATCH 0/8 v4] s390-qemu: cpu hotplug, Jason J. Herne, 2013/10/31
- [Qemu-devel] [PATCH 1/8 v4] s390-sclp: Define New SCLP Codes, Jason J. Herne, 2013/10/31
- [Qemu-devel] [PATCH 3/8 v4] s390-sclp: SCLP Event integration, Jason J. Herne, 2013/10/31
- [Qemu-devel] [PATCH 7/8 v4] [PATCH RFC v4] s390-hotplug: Implement hot_add_cpu hook, Jason J. Herne, 2013/10/31
- [Qemu-devel] [PATCH 6/8 v4] [PATCH RFC v4] s390-cpu: s390 cpu init improvements for hotplug, Jason J. Herne, 2013/10/31
- [Qemu-devel] [PATCH 8/8 v4] [PATCH RFC v4] qemu-monitor: HMP cpu-add wrapper, Jason J. Herne, 2013/10/31
- [Qemu-devel] [PATCH 5/8 v4] s390-cpu: ipi_states enhancements, Jason J. Herne, 2013/10/31
- [Qemu-devel] [PATCH 4/8 v4] s390: Storage key global access, Jason J. Herne, 2013/10/31
- [Qemu-devel] [PATCH 2/8 v4] s390-sclp: SCLP CPU Info, Jason J. Herne, 2013/10/31