kernel debugging question

Jon Noack noackjr at alumni.rice.edu
Sun May 16 15:15:18 PDT 2004


On 05/16/04 13:13, P. de Boer wrote:
On Sun, 16 May 2004 12:55:35 +0200 Patrick Mauritz wrote:
you could probably use qemu (http://fabrice.bellard.free.fr/qemu/),
an x86 emulator (similar to bochs, but with dynamic translation for
quite good performance) - it allows to attach a gdb to the client 
environment.

unfortunately there are some linuxisms in the code and the last 
freebsd patch I could find - at 
http://mail.gnu.org/archive/html/qemu-devel/2004-03/msg00048.html 
is pretty dated and doesn't apply to current versions of qemu
anymore.
The BSD patch only fails on one chunk on vl.c when applied to the 
sources of version 0.5.4. That reject is easily fixed by hand.
However, that wouldn't help much, since dfly doesn't seem to boot on
it anyway.. (hangs directly after the BTX loader banner)
It looks like the patch was recently committed:
http://savannah.nongnu.org/cgi-bin/viewcvs/qemu/qemu/Changelog.diff?r1=1.47&r2=1.48
Either grab the latest from CVS, wait for 0.5.6, or here's a more recent 
version of the patch:
http://mail.gnu.org/archive/html/qemu-devel/2004-04/msg00054.html

This later patch, bsd.diff, applies with a little fuzz to version 0.5.5 
with the exception of one chunk on vl.c (again).  Applying the attached 
fix.diff to bsd.diff (yes, it's a patch to the patch) allows the 
modified bsd.diff to apply cleanly.  You could also just fix this by hand.

I had to apply the attached sdl.diff to fix SDL detection (change 
'sdl-config' to 'sdl11-config').

This hacked-up 0.5.5 configures, compiles (you need to use gmake), and 
runs fine on FreeBSD 5.2-CURRENT.  The nbench test (from the linux-test 
image) shows that it's about 8 times slower for integer and 13 times 
slower for floating point on my Pentium 4.

I also tried the linux binary on FreeBSD 5.2-CURRENT.  Compared to the 
hacked version I just built, it runs a shade faster for integer but 
significantly slower (>25%) for floating-point.  Finally, note that 
qemu-fast is Linux-specific (requires modified Linux kernel) and will 
just hang on execution.

Jon Noack
--- bsd.diff	Sun May 16 14:38:41 2004
+++ bsd.diff	Sun May 16 14:55:17 2004
@@ -153,7 +153,7 @@
 diff -w -u -d -r1.57 vl.c
 --- vl.c	4 Apr 2004 20:22:28 -0000	1.57
 +++ vl.c	5 Apr 2004 08:02:38 -0000
-@@ -28,24 +28,30 @@
+@@ -28,21 +28,26 @@
  #include <fcntl.h>
  #include <signal.h>
  #include <time.h>
@@ -179,6 +179,10 @@
 +#include <sys/stat.h>
 +#include <libutil.h>
 +#endif
+ #endif
+ 
+ #if defined(CONFIG_SLIRP)
+@@ -50,6 +55,7 @@
  #endif
  
  #ifdef _WIN32
--- configure.orig	Sun May 16 15:02:05 2004
+++ configure	Sun May 16 15:01:21 2004
@@ -204,7 +204,7 @@
 
 if test -z "$sdl" ; then
 
-sdl_config="sdl-config"
+sdl_config="sdl11-config"
 sdl=no
 sdl_static=no
 




More information about the Kernel mailing list