diff options
author | Ognyan Kulev <ogi@fmi.uni-sofia.bg> | 2003-08-02 08:01:00 +0000 |
---|---|---|
committer | Ognyan Kulev <ogi@fmi.uni-sofia.bg> | 2003-08-02 08:01:00 +0000 |
commit | f25a113230a3e4eb1d4c89497f0c527eda9e6939 (patch) | |
tree | 3acad6410a00e3c1e5c7a2ffe1edf5084be58dd6 /Mach/RemoteDebugOskitMach.mdwn | |
parent | c2ab2fd0c4802197b71c7e2196fe7ee1c9cb51a3 (diff) |
none
Diffstat (limited to 'Mach/RemoteDebugOskitMach.mdwn')
-rw-r--r-- | Mach/RemoteDebugOskitMach.mdwn | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Mach/RemoteDebugOskitMach.mdwn b/Mach/RemoteDebugOskitMach.mdwn index 9f4c9ce5..5e4a099b 100644 --- a/Mach/RemoteDebugOskitMach.mdwn +++ b/Mach/RemoteDebugOskitMach.mdwn @@ -95,10 +95,14 @@ Last you need to follow the instructions given below. This way you can catch any kernel panics (except for the really nasty ones and try to debug them). I've noticed that once Mach is running under GDB, pressing C-c from GDB will not suspend it, this makes it hard to set additional breakpoints after the kernel is running. So optionally you can modify Mach to add a dummy system call that will be used only for setting breakpoints, and make a small program that calls it, you can use it whenever you want to pause the kernel and examine something under GDB. An example of how to do this is attached in Appendix A. +TODO: OSKit overrides interrupts 1 and 3 in kern/x86/gate\_init.c:gate\_init. A patch that skips src->vector `= 1 || =` 3 have to be prepared and attached to this page. More robust solution is to make OSKit/GNUMach recognize when it's debugged and change vector table accordingly. + Now you're all set to do some serious kernel hacking. I hope more people will take advantage of this opportunity. ## <a name="Appendix_A"> Appendix A </a> +TODO: Move inline diff and code into 2 attached files: one for patching GNU Mach, and one for gdb-break.c. + Apply this patch to oskit-mach to add a dummy system call: --- gdb-stub.diff --- |