diff options
-rw-r--r-- | microkernel/mach/gnumach/debugging.mdwn | 2 | ||||
-rw-r--r-- | microkernel/mach/gnumach/interface/thread_get_state.mdwn | 37 | ||||
-rw-r--r-- | microkernel/mach/gnumach/interface/thread_set_state.mdwn | 11 | ||||
-rw-r--r-- | user/jkoenig/java.mdwn | 3 |
4 files changed, 51 insertions, 2 deletions
diff --git a/microkernel/mach/gnumach/debugging.mdwn b/microkernel/mach/gnumach/debugging.mdwn index cf02471d..a5daf4f1 100644 --- a/microkernel/mach/gnumach/debugging.mdwn +++ b/microkernel/mach/gnumach/debugging.mdwn @@ -14,7 +14,7 @@ Here are some hints to debug with GNU Mach. [[!toc levels=2]] -# Kernel Debugger +# Kernel Debugger (KDB) Mach has a built-in kernel debugger. [Manual](http://www.gnu.org/software/hurd/gnumach-doc/Kernel-Debugger.html). diff --git a/microkernel/mach/gnumach/interface/thread_get_state.mdwn b/microkernel/mach/gnumach/interface/thread_get_state.mdwn new file mode 100644 index 00000000..c44cb927 --- /dev/null +++ b/microkernel/mach/gnumach/interface/thread_get_state.mdwn @@ -0,0 +1,37 @@ +[[!meta copyright="Copyright © 2014 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!meta title="thread_get_state, thread_set_state"]] + +[[!tag open_issue_documentation]] + + +# `i386_DEBUG_STATE` + +Access the x86 debug registers. + +[[!message-id "20110821231730.GF6004@type.famille.thibault.fr"]], +[[!GNU_Savannah_Git_hurd_gnumach d14e4924c55e3016d1ddf7a38a7e93460ca10ac8]]. + +For example, used by [[/GDB]] for implementing hardware watchpoints. + + +## Open Issues + +[[!tag open_issue_gnumach]] + + * Continuing on [[!message-id "87iokondoc.fsf@schwinge.name"]], do we need to + sanitize some of the values? Is user space allowed to set DR7's GD flag as + well as DR7's reserved flags, or should these flags be masked out? + Anything else? + + * If [[KDB|debugging]] is using hardware watchpoints, those set by user space + applications will be ignored. This is because KDB and the user-space + application are competing for the x86 debug registers, and KDB wins. diff --git a/microkernel/mach/gnumach/interface/thread_set_state.mdwn b/microkernel/mach/gnumach/interface/thread_set_state.mdwn new file mode 100644 index 00000000..35b75e98 --- /dev/null +++ b/microkernel/mach/gnumach/interface/thread_set_state.mdwn @@ -0,0 +1,11 @@ +[[!meta copyright="Copyright © 2014 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!meta redir=thread_get_state]] diff --git a/user/jkoenig/java.mdwn b/user/jkoenig/java.mdwn index ebfa45a4..ebd00f6b 100644 --- a/user/jkoenig/java.mdwn +++ b/user/jkoenig/java.mdwn @@ -194,7 +194,8 @@ for broader testing. * The FPU state is not included in the `ucontext_t` passed to the signal handler. On the other hand, `ucontext_t` is actually being somewhat deprecated: the functions to restore it are no longer in POSIX. - `thread_get_state`() should return this information, in case we decide + [[microkernel/mach/gnumach/interface/thread_get_state]] should return + this information, in case we decide to fill the gap, and there might be existing glibc wrappers, too. * Perhaps have a look at `SA_NOCLDWAIT`. |