freebsd-skq/sys/ddb
Bruce Evans e1e554a382 Silently ignore unexpected single-step traps (except for turning
off single-stepping).  Only do this on arches (only x86 so far)
which classify single-step traps unambiguously.

This allows other parts of the kernel to be intentionally and
unintentionally sloppy about generating single-step traps.  On
x86, at least the following places were unintentionally sloppy:
- all operations that context-switched [er]flags.  Especially
  spinlock_enter()/exit() and cpu_switch().  When single-stepped,
  saving the flags leaves PSL_T set in the saved flags, so
  restoring gives a trap that is spurious if it occurs after
  single-step mode has been left.  Switching contexts away from
  a low priority thread gives especially long-lived saved copies.
- the vm86 emulation allows user mode to set PSL_T.  This was
  correct until vm86 bios call mode was unintentionally given
  access to kdb handling its single-step traps.
Now these places are intentionally sloppy, but unexpected
debugger traps still cause panics if no debugger that handles
the trap is attached when the trap is delivered.
2016-09-17 11:43:51 +00:00
..
db_access.c ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00
db_access.h ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00
db_break.c ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00
db_break.h
db_capture.c ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00
db_command.c Correct the type of db_cmd_loop_done. 2016-09-09 04:16:53 +00:00
db_command.h
db_examine.c Add a small set of logical operators to DDB command language. 2016-05-16 19:42:38 +00:00
db_expr.c Expand error messages: print symbol names, parentheses and shift tokens, 2016-08-28 19:33:09 +00:00
db_input.c ddb: de-register 2015-05-23 14:59:27 +00:00
db_lex.c Add a small set of logical operators to DDB command language. 2016-05-16 19:42:38 +00:00
db_lex.h Add a small set of logical operators to DDB command language. 2016-05-16 19:42:38 +00:00
db_main.c Pass the trap type and code down from db_trap() to db_stop_at_pc() so 2016-09-09 15:53:42 +00:00
db_output.c sys: Make use of our rounddown() macro when sys/param.h is available. 2016-04-30 14:41:18 +00:00
db_output.h ddb: space/tab fixes. 2014-10-11 20:25:19 +00:00
db_print.c Various changes to the registers displayed in DDB for x86. 2015-07-22 01:09:02 +00:00
db_ps.c In ddb ps, left justify the non-numeric fields 'state' and 'wmesg' and 2016-08-14 15:26:40 +00:00
db_run.c Silently ignore unexpected single-step traps (except for turning 2016-09-17 11:43:51 +00:00
db_script.c ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00
db_sym.c ddb: for pointers replace 0 with NULL. 2016-04-15 17:27:20 +00:00
db_sym.h ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00
db_textdump.c sys/ddb: spelling fixes in comments. 2016-04-29 20:53:39 +00:00
db_thread.c ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00
db_variables.c Indentation issues. 2016-04-20 16:19:44 +00:00
db_variables.h ddb: space/tab fixes. 2014-10-11 20:25:19 +00:00
db_watch.c ddb: de-register 2015-05-23 14:59:27 +00:00
db_watch.h ddb: space/tab fixes. 2014-10-11 20:25:19 +00:00
db_write_cmd.c ddb: de-register 2015-05-23 14:59:27 +00:00
ddb.h Pass the trap type and code down from db_trap() to db_stop_at_pc() so 2016-09-09 15:53:42 +00:00