Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
soc:2008:stefanha:notes:start [2008/05/20 00:38] stefanha |
soc:2008:stefanha:notes:start [2008/05/26 13:09] stefanha |
||
---|---|---|---|
Line 3: | Line 3: | ||
===== Notes ===== | ===== Notes ===== | ||
- | * Linux [[kgdb|http://kgdb.linsyssoft.com/]] [[http://kgdb.cvs.sourceforge.net/kgdb/kgdb-2/eth.patch?revision=1.60&view=markup|over Ethernet]] using the [[http://www.selenic.com/netpoll/|Netpoll API]]. | + | * Linux [[http://kgdb.linsyssoft.com/|kgdb]] [[http://kgdb.cvs.sourceforge.net/kgdb/kgdb-2/eth.patch?revision=1.60&view=markup|over Ethernet]] using the [[http://www.selenic.com/netpoll/|Netpoll API]]. |
+ | |||
+ | === QEMU memory dumps === | ||
+ | The QEMU monitor (''CTRL+ALT+2'') supports debug commands to inspect registers and memory. Unfortunately, QEMU only honors paged virtual memory. Since gPXE sets up a virtual memory segment with a non-zero base address, all virtual addresses need to be adjusted before using them to inspect memory in QEMU. | ||
+ | |||
+ | The virtual memory offset is available inside gPXE as ''virt_offset'' (see ''arch/i386/transitions/librm.S''). It can be printed out by placing a ''printf'' call in ''core/main.c''. | ||
+ | |||
+ | When dumping memory, remember to add the value of ''virt_offset'' to any virtual memory addresses. QEMU is effectively using physical memory only. |