====== Differences ====== This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
soc:2008:stefanha:notes:start [2008/05/26 13:09] stefanha |
soc:2008:stefanha:notes:start [2008/06/05 05:57] (current) stefanha |
||
---|---|---|---|
Line 4: | Line 4: | ||
* 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]]. | * 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]]. | ||
- | + | * FreeBSD [[http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/gdb/|GDB stub]]. | |
- | === 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. | + |