diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2015-08-15 16:43:24 +0200 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2015-08-17 15:42:31 +0200 |
commit | bdc9b8583e6336bb3a44a80f10bac8b7b369719c (patch) | |
tree | 9fe6a45b74a7ed6ecf7a2316c095f875799e5bfc /ddb/db_trap.c | |
parent | 8259090d7394b667fbca4d4b05153e980a39db6b (diff) |
kern: disable the simple lock checks while debugging
* kern/lock.c (do_check_simple_locks): New variable.
(check_simple_locks): Make check conditional.
(check_simple_locks_{en,dis}able): New functions.
* kern/lock.h (check_simple_locks_{en,dis}able): New declarations.
* ddb/db_trap.c (db_task_trap): Disable simple lock checks.
Diffstat (limited to 'ddb/db_trap.c')
-rw-r--r-- | ddb/db_trap.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ddb/db_trap.c b/ddb/db_trap.c index 7e10731..cbb6bde 100644 --- a/ddb/db_trap.c +++ b/ddb/db_trap.c @@ -45,6 +45,7 @@ #include <ddb/db_trap.h> #include <ddb/db_run.h> #include <machine/db_interface.h> +#include <kern/lock.h> extern jmp_buf_t *db_recover; @@ -65,6 +66,8 @@ db_task_trap( boolean_t watchpt; task_t task_space; + check_simple_locks_disable(); + task_space = db_target_space(current_thread(), user_space); bkpt = IS_BREAKPOINT_TRAP(type, code); watchpt = IS_WATCHPOINT_TRAP(type, code); @@ -97,6 +100,7 @@ db_task_trap( db_command_loop(); } + check_simple_locks_enable(); db_restart_at_pc(watchpt, task_space); } |