Metropoli BBS
VIEWER: krnldeb.txt MODE: TEXT (ASCII)
Debugging RSX (32bit):
----------------------

1) Build debugging version of rsx:
    (you should use ndmake, dmake)
    run makefile in \rsx\source\fpu-emu
    run makefile in \rsx\source

2) edit the path for the GDB in \rsx\source\rsxdeb.bat

3) Execute batch-file rsxdeb.bat
    to call:  rsxdeb.bat myprog.exe
    myprog.exe is your test program
    (rsx32 need work / GDB can't debug itself in kernel)


Sample Session:
---------------
c:\rsx\source> rsxdeb sample/exec.emx		    // your command

RSX32 [beta rev4] dpmi 0.9/1.0 extender (c) Rainer Schnitker '93 '94
GDB is free software and you are welcome to distribute copies of it
under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.11 (emx), Copyright 1993 Free Software Foundation, Inc...

"c:/rsx/source/sample/exec.emx" is not a core dump: File format not recognized
						    // ignore this

(gdb) tb sys_write				    // temp breakpoint
Breakpoint 1 at 0x1ccc3: file fs.c, line 165.
(gdb) r 					    // run !! (neccesary)
Starting program: c:/rsx/source/rsx32.emx
KERNEL DEBUG MODE with second prg sample/exec.emx   // correct message
sys_write (fd=1, buf=53183, bytes=7) at fs.c:165
165	    if (fd >= N_FILES)
(gdb) n 					    // next
167	    if (!(file = npz->filp[fd]))
.
.
.
.
(gdb) q 					    // quit


Hints:
------

The "Kernel Debug Mode" allowes to debug all function following
the entry function int21() in sysemx.c.
These are sysemx.c, cdosx32.c, process.c, termio.c, ...

Global variables can be changed from GDB syscalls.
GDB uses also the IO transfer buffer (could changed).

You can't debug rsx.c. This file will never executed again.

Don't debug exception handlers or kernel debug functions!
[ RETURN TO DIRECTORY ]