summaryrefslogtreecommitdiff
path: root/Hurd/DebuggingViaSubhurds.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'Hurd/DebuggingViaSubhurds.mdwn')
-rw-r--r--Hurd/DebuggingViaSubhurds.mdwn85
1 files changed, 85 insertions, 0 deletions
diff --git a/Hurd/DebuggingViaSubhurds.mdwn b/Hurd/DebuggingViaSubhurds.mdwn
new file mode 100644
index 00000000..20855da6
--- /dev/null
+++ b/Hurd/DebuggingViaSubhurds.mdwn
@@ -0,0 +1,85 @@
+## <a name="General_Information"> General Information </a>
+
+See the [[SubhurdHowto]] for general information about subhurds.
+
+----
+
+## <a name="Debugging_the_Hurd_Startup_Proce"> Debugging the Hurd Startup Process </a>
+
+_one.full_ is the subhurd's root file system image and has been installed as follows: [TODO]
+
+_Wx_ translates to terminal window _x_.
+
+W1
+
+ $ fsysopts one.full/ --readonly
+ $ sudo boot -I -d -s -D one.full/ one.full/boot/script.boot one.full.ext2
+ Pausing. . .
+
+(In theory it shouldn't be neccessary to run the subhurd as user _root_, but in practice [that doesn't work at the moment](http://savannah.gnu.org/bugs/?17341).)
+
+W2
+
+ $ ps -Af
+ [...]
+ root 851 385 p4 0:00.01 boot -I -d -s -D one.full/ one.full/boot/script.boot one.full.ext2
+ - 853 1 ? 0:00.00 ?
+ - 854 1 ? 0:00.00 ?
+ [...]
+ $ sudo gdb /var/tmp/one.full/hurd/ext2fs.static
+ [...]
+ (gdb) attach 853
+ Attaching to program `/var/tmp/one.full/hurd/ext2fs.static', pid 853
+ warning: Can't modify tracing state for pid 853: No signal thread
+ Can't fetch registers from thread 1: No such thread
+
+(The _boot_ program [could be modified to print out the pids](http://savannah.gnu.org/bugs/?19254), so that one wouldn't have to fumble with _ps_.)
+
+W3
+
+ $ sudo gdb /var/tmp/one.full/hurd/exec
+ [...]
+ (gdb) set solib-absolute-prefix /var/tmp/one.full
+ (gdb) attach 854
+ Attaching to program `/var/tmp/one.full/hurd/exec', pid 854
+ warning: Can't modify tracing state for pid 854: No signal thread
+ Can't fetch registers from thread 1: No such thread
+
+W1
+
+ [<Enter>.]
+ /hurd/ext2fs.static --bootflags=-dsf --host-priv-port=38 --device-master-port=43 --exec-server-task=47 -Tdevice pseudo-root
+ /lib/ld.so.1 /hurd/exec
+
+W2
+
+ (gdb) continue
+ Continuing.
+ warning: Can't wait for pid 853: No child processes
+
+W1
+
+ Hurd server bootstrap: ext2fs.static[pseudo-root] exec
+
+W3
+
+ (gdb) continue
+ Continuing.
+ warning: Can't wait for pid 854: No child processes
+
+ Program received signal EXC_BAD_ACCESS, Could not access memory.
+ 0x000168f2 in ?? ()
+ (gdb) bt
+ #0 0x000168f2 in ?? ()
+ Cannot access memory at address 0xbeffffe4
+ (gdb) info threads
+ * 1 thread 1005.1 0x000168f2 in ?? ()
+ (gdb) disassemble
+ No function contains program counter for selected frame.
+
+----
+
+Sources:
+
+* <http://www.gnu.org/software/hurd/howto/subhurd.html>
+* <http://lists.gnu.org/archive/html/bug-hurd/2007-02/msg00030.html>