summaryrefslogtreecommitdiff
path: root/microkernel
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2016-09-11 21:53:48 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2016-09-11 21:53:48 +0200
commit6326c31d81f5a2cbac2299991f387787315507db (patch)
tree7ae02c4d09ed970b1b86f4e2b70766a32964299c /microkernel
parentdac1a147fd4dbb851c51ab090f89ec0a736c59cf (diff)
Give hint how to fix glibc stack unwinding from kernel
Diffstat (limited to 'microkernel')
-rw-r--r--microkernel/mach/gnumach/debugging.mdwn4
1 files changed, 1 insertions, 3 deletions
diff --git a/microkernel/mach/gnumach/debugging.mdwn b/microkernel/mach/gnumach/debugging.mdwn
index 164c4349..9534c758 100644
--- a/microkernel/mach/gnumach/debugging.mdwn
+++ b/microkernel/mach/gnumach/debugging.mdwn
@@ -53,9 +53,7 @@ To examine the backtrace of some given thread, use
show all thread/u
-to get the whole listing of all tasks and threads. You can then use trace/t or trace/tu to trace a specific thread.
-
-Unfortunately, userland and kernelland use the same range of addresses, so one can not get userland traces easily. The Xen port uses different ranges, and in that case one can use trace/u to also get the userland trace.
+to get the whole listing of all tasks and threads. You can then use trace/t or trace/tu to trace a specific thread. gcc however uses the frame pointer as a normal register unless `-fno-omit-frame-pointer` is given. It can thus be useful to rebuild glibc with that option, by adding `extra_cflags = -fno-omit-frame-pointer` in `glibc/debian/sysdeps/hurd-i386.mk`
To examine a variable, use nm /boot/gnumach to get the address of the variable (e.g. 0x123400), and use