--- wikisrc/kernel_debugging_with_qemu.mdwn 2015/08/05 12:58:13 1.12 +++ wikisrc/kernel_debugging_with_qemu.mdwn 2018/11/09 13:39:26 1.17 @@ -16,7 +16,7 @@ If your host system is running NetBSD, i from pkgsrc: * emulators/qemu >= 2.0.0nb4 -* misc/py-anita +* misc/py-anita >= 1.44 If your host system uses a package system other than pkgsrc, use that to install cvs, make, gcc, qemu, the Python pexpect @@ -28,10 +28,12 @@ install the most recent anita package fr Check out the NetBSD-current sources from CVS and build a full release of NetBSD-current/i386 with debug symbols using the build.sh script. -The i386 port is the preferred test platform because the two -other ports supported by anita are affected by known bugs: amd64 by -[[PR 50128|http://gnats.NetBSD.org/50128]], and sparc by -[[qemu bug 1399943|https://bugs.launchpad.net/qemu/+bug/1399943]]. +The i386 port is preferred because these instructions have been +successfully tested with it. +The amd64 port won't work because of [[PR 50128|http://gnats.NetBSD.org/50128]], +and sparc has not been tested since [[qemu bug +1399943|https://bugs.launchpad.net/qemu/+bug/1399943]] was fixed. + If you do the build in a directory other than /usr/src, use the -fdebug-prefix-map option to ensure that the source file names embedded in the debug symbols point to /usr/src, which is where the sources will be @@ -52,7 +54,7 @@ Install the system in a virtual machine, [[!template id=programlisting text=""" $ cd .. - $ anita --workdir work --disk-size 4G --memory-size 256M \ + $ anita --workdir work --disk-size 8G --memory-size 256M \ --sets kern-GENERIC,modules,base,etc,comp,debug,games,man,misc,tests,text,syssrc,src,sharesrc,gnusrc \ install $(pwd)/obj/releasedir/i386/ """]] @@ -72,7 +74,7 @@ First start the target VM, enabling qemu on TCP port 1234: [[!template id=programlisting text=""" - $ qemu-system-i386 -nographic -snapshot -hda work/wd0.img -gdb tcp::1234 + $ qemu-system-i386 -nographic -snapshot -hda work/wd0.img -m 128 -gdb tcp::1234 """]] If you don't want everyone on the Internet to be able to debug your @@ -82,7 +84,7 @@ your firewall. In a second terminal window, start the gdb VM: [[!template id=programlisting text=""" - $ qemu-system-i386 -nographic -snapshot -hda work/wd0.img + $ qemu-system-i386 -nographic -snapshot -hda work/wd0.img -m 256 """]] Log in to the gdb VM as root and set up the network: @@ -111,10 +113,8 @@ with full debug symbols and access to th """]] If the stack trace prints very slowly (like 30 seconds per stack -frame), it's likely because you are using a version of qemu where -the user-mode networking code fails to disable the Nagle algorithm. -This is fixed in the qemu in pkgsrc, but you may run into it if your -qemu is not installed via pkgsrc. +frame), you are probably using an old version of qemu that fails +to disable the Nagle algorithm. ## Qemu tips