From bb5d918ebbfef16189a63de4c6dc184a23763316 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 17 Sep 2014 11:22:07 +0200 Subject: microkernel/mach/gnumach/interface/thread_get_state, thread_set_state: New. --- microkernel/mach/gnumach/debugging.mdwn | 2 +- .../mach/gnumach/interface/thread_get_state.mdwn | 37 ++++++++++++++++++++++ .../mach/gnumach/interface/thread_set_state.mdwn | 11 +++++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 microkernel/mach/gnumach/interface/thread_get_state.mdwn create mode 100644 microkernel/mach/gnumach/interface/thread_set_state.mdwn (limited to 'microkernel/mach') 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]] -- cgit v1.2.3