#
fdafd315 |
|
24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Automated cleanup of cdefs and other formatting Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row. Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/ Sponsored by: Netflix
|
#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
d6c0538d |
|
07-Jan-2022 |
Warner Losh <imp@FreeBSD.org> |
ddb: Remove SOFTWARE_SSTEP support It was needed for mips only, and only kinda sorta worked for mips. It can be brought back if we grow another architecture that need it. Sponsored by: Netflix
|
#
b7924341 |
|
27-Aug-2021 |
Andrew Turner <andrew@FreeBSD.org> |
Create sys/reg.h for the common code previously in machine/reg.h Move the common kernel function signatures from machine/reg.h to a new sys/reg.h. This is in preperation for adding PT_GETREGSET to ptrace(2). Reviewed by: imp, markj Sponsored by: DARPA, AFRL (original work) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D19830
|
#
3c40d3fc |
|
08-Sep-2019 |
Conrad Meyer <cem@FreeBSD.org> |
ddb(4): Move an extern variable declaration to a header Trivial cleanup, no functional change.
|
#
3f289c3f |
|
12-Jan-2018 |
Jeff Roberson <jeff@FreeBSD.org> |
Implement 'domainset', a cpuset based NUMA policy mechanism. This allows userspace to control NUMA policy administratively and programmatically. Implement domainset based iterators in the page layer. Remove the now legacy numa_* syscalls. Cleanup some header polution created by having seq.h in proc.h. Reviewed by: markj, kib Discussed with: alc Tested by: pho Sponsored by: Netflix, Dell/EMC Isilon Differential Revision: https://reviews.freebsd.org/D13403
|
#
796df753 |
|
30-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
SPDX: Consider code from Carnegie-Mellon University. Interesting cases, most likely from CMU Mach sources.
|
#
e1e554a3 |
|
17-Sep-2016 |
Bruce Evans <bde@FreeBSD.org> |
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.
|
#
1e24fd3b |
|
16-Sep-2016 |
Bruce Evans <bde@FreeBSD.org> |
Statically initialize the run mode to the one that will become current on first entry. This fixes a spurious "Stepping aborted" message when the first entry is for a breakpoint. Don't reset to the run mode to STEP_NONE when stopping, and remove STEP_NONE. This mode was never really used, except transiently to mis-decide whether to print the message on first entry.
|
#
bd20334c |
|
15-Sep-2016 |
Bruce Evans <bde@FreeBSD.org> |
Abort single stepping in ddb if the trap is not for single-stepping. This is not very easy to do, since ddb didn't know when traps are for single-stepping. It more or less assumed that traps are either breakpoints or single-step, but even for x86 this became inadequate with the release of the i386 in ~1986, and FreeBSD passes it other trap types for NMIs and panics. On x86, teach ddb when a trap is for single stepping using the %dr6 register. Unknown traps are now treated almost the same as breakpoints instead of as the same as single-steps. Previously, the classification of breakpoints was almost correct and everything else was unknown so had to be treated as a single-step. Now the classification of single- steps is precise, the classification of breakpoints is almost correct (as before) and everything else is unknown and treated like a breakpoint. This fixes: - breakpoints not set by ddb, including the main one in kdb_enter(), were treated as single-steps and not stopped on when stepping (except for the usual, simple case of a step with residual count 1). As special cases, kdb_enter() didn't stop for fatal traps or panics - similarly for "hardware breakpoints". Use a new MD macro IS_SSTEP_TRAP(type, code) to code to classify single-steps. This is excessively complicated for bug-for-bug and backwards compatibilty. Design errors apparently started in Mach in ~1990 or perhaps in the FreeBSD interface in ~1993. Common trap types like single steps should have a unique MI code (like the TRAP* codes for user SIGTRAP) so that debuggers don't need macros like IS_SSTEP_TRAP() to decode them. But 'type' is actually an ambiguous MD trap number, and code was always 0 (now it is (int)%dr6 on x86). So it was impossible to determine the trap type from the args. Global variables had to be used. There is already a classification macro db_pc_is_single_step(), but this just gets in the way. It is only used to recover from bugs in IS_BREAKPOINT_TRAP(). On some arches, IS_BREAKPOINT_TRAP() just duplicates the ambiguity in 'type' and misclassifies single-steps as breakpoints. It defaults to 'false', which is the opposite of what is needed for bug-for-bug compatibility. When this is cleaned up, MI classification bits should be passed in 'code'. This could be done now for positive-logic bits, since 'code' was always 0, but some negative logic is needed for compatibility so a simple MI classificition is not usable yet. After reading %dr6, clear the single-step bit in it so that the type of the next debugger trap can be decoded. This is a little ddb-specific. ddb doesn't understand the need to clear this bit and doing it before calling kdb is easiest. gdb would need to reverse this to support hardware breakpoints, but it just doesn't support them now since gdbstub doesn't support %dr*. Fix a bug involving %dr6: when emulating a single-step trap for vm86, set the bit for it in %dr6. Userland debuggers need this. ddb now needs this for vm86 bios calls. The bit gets copied to 'code' then cleared again. Fix related style bugs: - when clearing bits for hardware breakpoints in %dr6, spell the mask as ~0xf on both amd64 and i386 to get the correct number of bits using sign extension and not need a comment about using the wrong mask on amd64 (amd64 traps for invalid results but clearing the reserved top bits didn't trap since they are 0). - rewrite my old wrong comments about using %dr6 for ddb watchpoints.
|
#
5c48342f |
|
09-Sep-2016 |
Bruce Evans <bde@FreeBSD.org> |
Pass the trap type and code down from db_trap() to db_stop_at_pc() so that the latter can easily determine what the trap type actually is after callers are fixed to encode the type unambigously. ddb currently barely understands breakpoints, and it treats all non-breakpoints as single-step traps. This works OK for stopping after every instruction when single-stepping, but is broken for single-stepping with a count > 1 (especially with a large count). ddb needs to stop on the first non-single-step trap while single- stepping. Otherwise, ddb doesn't even stop the first time for fatal traps and external breakpoints like the one in kdb_enter().
|
#
10c458cc |
|
09-Sep-2016 |
Bruce Evans <bde@FreeBSD.org> |
Fix stopping when the specified breakpoint count is reached. The countdown was done correctly, but the action when the count was not reduced to 0 was to fall through to generic code which almost always stopped.
|
#
cecc0aa9 |
|
14-Aug-2016 |
Bruce Evans <bde@FreeBSD.org> |
Don't print an extra newline after the instruction when printing for single stepping of multiple instructions (e.g., s/p,<count> and n/p). db_print_loc_and_inst() already prints a newline on all arches although it probably shouldn't. Especially on SMP systems, single stepping tends to deadlock or panic too quickly to be useful for anything except finding bugs in itself, but with printing "itself" includes console drivers so it is useful for generating stress tests for console drivers.
|
#
cdf23c19 |
|
27-Nov-2015 |
Zbigniew Bodek <zbb@FreeBSD.org> |
Add helper to catch single step debug event and distinguish it from bkpt Some architectures (including ARMv6/v7) do not have separate single step events and cannot see difference between breakpoint and single step. Add db_pc_is_singlestep() to avoid skipping instruction we stepped on to trigger debug event. This commit does not change the existing functionality but adds possibility to implement custom db_pc_is_singlestep(). Reviewed by: imp Submitted by: Zbigniew Bodek <zbb@semihalf.com> Obtained from: Semihalf Sponsored by: Juniper Networks Inc. Differential Revision: https://reviews.freebsd.org/D4036
|
#
0a95ab74 |
|
23-May-2015 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
ddb: de-register
|
#
cd508278 |
|
21-May-2015 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
ddb: finish converting boolean values. The replacement started at r283088 was necessarily incomplete without replacing boolean_t with bool. This also involved cleaning some type mismatches and ansifying old C function declarations. Pointed out by: bde Discussed with: bde, ian, jhb
|
#
2b490bc7 |
|
18-May-2015 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
ddb: stop boolean screaming. TRUE --> true FALSE--> false Hinted by: NetBSD
|
#
a41dd031 |
|
12-Oct-2014 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
ddb: ANSI-fy function declarations. MFC after: 5 days
|
#
1549fb22 |
|
11-Oct-2014 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
ddb: space/tab fixes. No functional change. MFC after: 3 days
|
#
c6cb86cc |
|
14-Aug-2014 |
Warner Losh <imp@FreeBSD.org> |
ins is only set and unused, but only when we're not doing software single stepping. Only set it when we're doing that by bending style(9) rules a little to avoid even worse #ifdef soup.
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
08cfba5d |
|
01-Aug-2008 |
Olivier Houchard <cognet@FreeBSD.org> |
Fix software single-stepping: we need to check if the instruction is a return instruction as well, or we'll stop single-stepping as soon as we'll return from a function. MFC after: 3 days
|
#
20984f2f |
|
13-Apr-2005 |
Peter Wemm <peter@FreeBSD.org> |
rev 1.54 of i386/include/pcb.h depended on sys/proc.h. The prerequisite was satisified for the rest of the kernel on the i386 build except for these two files. Rather than adding a submarine include to pcb.h, I've added proc.h here. I forgot to include these with the original commit. Sorry folks.
|
#
dd3cb568 |
|
05-Jan-2005 |
Warner Losh <imp@FreeBSD.org> |
Start each of the license/copyright comments with /*-
|
#
75f88c7c |
|
21-Nov-2004 |
Olivier Houchard <cognet@FreeBSD.org> |
Do not attempt to skip a breakpoint that is a result of a software single step, or bad things happen.
|
#
37224cd3 |
|
10-Jul-2004 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Mega update for the KDB framework: turn DDB into a KDB backend. Most of the changes are a direct result of adding thread awareness. Typically, DDB_REGS is gone. All registers are taken from the trapframe and backtraces use the PCB based contexts. DDB_REGS was defined to be a trapframe on all platforms anyway. Thread awareness introduces the following new commands: thread X switch to thread X (where X is the TID), show threads list all threads. The backtrace code has been made more flexible so that one can create backtraces for any thread by giving the thread ID as an argument to trace. With this change, ia64 has support for breakpoints.
|
#
753960f7 |
|
10-Jun-2003 |
David E. O'Brien <obrien@FreeBSD.org> |
Use __FBSDID().
|
#
53b3e912 |
|
23-Jun-2002 |
Maxime Henrion <mux@FreeBSD.org> |
Split the declaration and the initialization of two variables. This has the fortunate side effect of stopping GCC from reporting warnings about unused variables on sparc64. Reviewed by: bde
|
#
14e10f99 |
|
19-Mar-2002 |
Alfred Perlstein <alfred@FreeBSD.org> |
Remove __P.
|
#
3a0b4f25 |
|
15-Sep-2001 |
Doug Rabson <dfr@FreeBSD.org> |
Fill out some gaps in ia64 DDB support. This involves generalising DDB's breakpoint handling slightly to cope with the fact that ia64 instructions are not located on byte boundaries.
|
#
68016904 |
|
14-Aug-2001 |
David E. O'Brien <obrien@FreeBSD.org> |
No tokens should follow #endif.
|
#
c3aac50f |
|
27-Aug-1999 |
Peter Wemm <peter@FreeBSD.org> |
$Id$ -> $FreeBSD$
|
#
1c6989fa |
|
01-Jul-1999 |
Peter Wemm <peter@FreeBSD.org> |
Quiet warnings on Alpha. (db_expr_t is a long on alpha, int on x86)
|
#
46e5fdff |
|
05-Jul-1998 |
Doug Rabson <dfr@FreeBSD.org> |
Remove the two single step breakpoints in the reverse order of setting to ensure that single stepping a branch to the next instruction works.
|
#
7045d394 |
|
27-Jun-1998 |
Doug Rabson <dfr@FreeBSD.org> |
Use db_addr_t for the breakpoint address in db_set_single_step.
|
#
ecbb00a2 |
|
07-Jun-1998 |
Doug Rabson <dfr@FreeBSD.org> |
This commit fixes various 64bit portability problems required for FreeBSD/alpha. The most significant item is to change the command argument to ioctl functions from int to u_long. This change brings us inline with various other BSD versions. Driver writers may like to use (__FreeBSD_version == 300003) to detect this change. The prototype FreeBSD/alpha machdep will follow in a couple of days time.
|
#
eac31004 |
|
14-Jun-1997 |
Bruce Evans <bde@FreeBSD.org> |
Removed unused #includes.
|
#
6875d254 |
|
22-Feb-1997 |
Peter Wemm <peter@FreeBSD.org> |
Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not ready for it yet.
|
#
1130b656 |
|
14-Jan-1997 |
Jordan K. Hubbard <jkh@FreeBSD.org> |
Make the long-awaited change from $Id$ to $FreeBSD$ This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
|
#
5ccbc3cc |
|
10-Dec-1995 |
Bruce Evans <bde@FreeBSD.org> |
Reduced and cleaned up #includes.
|
#
25eb640d |
|
10-Dec-1995 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Staticize and cleanup.
|
#
efeaf95a |
|
06-Dec-1995 |
David Greenman <dg@FreeBSD.org> |
Untangled the vm.h include file spaghetti.
|
#
f73a856d |
|
29-Nov-1995 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Staticized and '#ifdef notused' stuff we don't use.
|
#
058284fc |
|
24-Nov-1995 |
Bruce Evans <bde@FreeBSD.org> |
Completed function declarations and/or added prototypes and/or #includes to get the prototypes. Changed some `int's to `boolean_t's. boolean_t's are ints so they are hard to distinguish from ints. Converted function headers to old-style. ddb is written in K&R1 C except where we broke it.
|
#
9b2e5354 |
|
30-May-1995 |
Rodney W. Grimes <rgrimes@FreeBSD.org> |
Remove trailing whitespace.
|
#
f540b106 |
|
12-Aug-1994 |
Garrett Wollman <wollman@FreeBSD.org> |
Change all #includes to follow the current Berkeley style. Some of these ``changes'' are actually not changes at all, but CVS sometimes has trouble telling the difference. This also includes support for second-directory compiles. This is not quite complete yet, as `config' doesn't yet do the right thing. You can still make it work trivially, however, by doing the following: rm /sys/compile mkdir /usr/obj/sys/compile ln -s M-. /sys/compile cd /sys/i386/conf config MYKERNEL cd ../../compile/MYKERNEL ln -s /sys @ rm machine ln -s @/i386/include machine make depend make
|
#
381fe1aa |
|
24-Nov-1993 |
Garrett Wollman <wollman@FreeBSD.org> |
Make the LINT kernel compile with -W -Wreturn-type -Wcomment -Werror, and add same (sans -Werror) to Makefile for future compilations.
|
#
0edf66ec |
|
16-Oct-1993 |
Rodney W. Grimes <rgrimes@FreeBSD.org> |
Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some minor cleanup. Added $Id$ to files that did not have any version info, etc
|
#
5b81b6b3 |
|
12-Jun-1993 |
Rodney W. Grimes <rgrimes@FreeBSD.org> |
Initial import, 0.1 + pk 0.2.4-B1
|