Home | History | Annotate | Download | only in kern
History log of /src/sys/kern/core_netbsd.c
RevisionDateAuthorComments
 1.24  20-Nov-2019  pgoyette Move all non-emulation-specific coredump code into the coredump module,
and remove all #ifdef COREDUMP conditional compilation. Now, the
coredump module is completely separated from the emulation modules, and
they can all be independently loaded and unloaded.

Welcome to 9.99.18 !
 1.23  06-Jan-2017  kamil branches: 1.23.16;
Introduce new ptrace(2) interface: PT_SET_SIGINFO and PT_GET_SIGINFO

This interface is designed to read signal information emited to tracee and
fake this signal with new value.

This functionality is required to distinguish types of events that occured
in the tracee and intercepted by a debugger.

These accessors introduce a new structure type ptrace_siginfo:
/*
* Signal Information structure
*/
typedef struct ptrace_siginfo {
siginfo_t psi_siginfo; /* signal information structure */
lwpid_t psi_lwpid; /* destination LWP of the signal
* value 0 means the whole process
* (route signal to all LWPs) */
} ptrace_siginfo_t;

Include <sys/siginfo.h> in <sys/ptrace.h> in order to not break existing
software due to unknown symbol siginfo_t.

This interface has been proposed to the tech-kern@ mailing list.

Sponsored by <The NetBSD Foundation>
 1.22  07-Jan-2014  dsl branches: 1.22.6; 1.22.10;
Re-instate the zero length sections in elf core dumps (they probably help
describe the process memory layout).
Fudge the a.out core code to not dump the entire contents.
I'm not sue that anything can read a.out core files - more progress might
be made on such dumps by converting the a.out file to elf!
 1.21  03-Jan-2014  dsl There is no need for uvm_coredump_walkmap() to explicity pass the proc_t
pointer to the calller's function.
If the code needs the process its address can be placed in the caller's
cookie.
 1.20  03-Jan-2014  dsl Minor changes to the process coredump code.
- Add some extra comments.
- Add some XXX comments because the process state might not be stable,
- Add uvm_coredump_count_segs() to simplify the calling code.
- uvm code now only returns non-empty sections/segments.
- Put the 'iocookie' into the 'cookie' block passed to uvm_coredump_walkmap()
instead of passing it through as an additional parameter.
amd64 can still generate core dumps that gdb can read.
 1.19  01-Jan-2014  dsl Change the type of the 'cookie' that holds the state of the core dump file
from 'void *' to the actual type 'struct coredump_iostate *'.
In most of the code the contents of the structure are still unknown.
This just stops the wrong type of pointer being passed to the 'void *'
parameter.
I hope I've found everything, amd64 GENERIC and i386 GENERIC & ALL compile.
 1.18  02-Feb-2011  chuck branches: 1.18.4; 1.18.14; 1.18.18;
udpate license clauses on my code to match the new-style BSD licenses.
verified with Mike Hibler it is ok to remove clause 3 on utah copyright,
as per UCB.
based on diff that rmind@ sent me.

no functional change with this commit.
 1.17  14-Jan-2011  rmind branches: 1.17.2; 1.17.4;
Retire struct user, remove sys/user.h inclusions. Note sys/user.h header
as obsolete. Remove USER_TO_UAREA/UAREA_TO_USER macros.

Various #include fixes and review by matt@.
 1.16  19-Nov-2008  ad branches: 1.16.8;
Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
 1.15  29-Apr-2008  ad branches: 1.15.6; 1.15.8;
PR kern/37917 /bin/ps no longer shows zombies
 1.14  01-Nov-2006  yamt branches: 1.14.48; 1.14.50; 1.14.52;
remove some __unused from function parameters.
 1.13  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.12  08-Dec-2005  thorpej branches: 1.12.22;
Sprinkle static.
 1.11  10-Jun-2005  matt branches: 1.11.2;
Rework the coredump code to have no explicit knownledge of how coredump
i/o is done. Instead, pass an opaque cookie which is then passed to a
new routine, coredump_write, which does the actual i/o. This allows the
method of doing i/o to change without affecting any future MD code.
Also, make netbsd32_core.c [re]use core_netbsd.c (in a similar manner that
core_elf64.c uses core_elf32.c) and eliminate that code duplication.
cpu_coredump{,32} is now called twice, first with a NULL iocookie to fill
the core structure and a second to actually write md parts of the coredump.
All i/o is nolonger random access and is suitable for shipping over a stream.
 1.10  02-Jun-2005  matt When writing coredumps, don't write zero uninstantiated demand-zero pages.
Also, with ELF core dumps, trim trailing zeroes from sections. These two
changes can shrink coredumps by over 50% in size.
 1.9  26-Feb-2005  perry nuke trailing whitespace
 1.8  17-Sep-2004  skrll branches: 1.8.4; 1.8.6;
There's no need to pass a proc value when using UIO_SYSSPACE with
vn_rdwr(9) and uiomove(9).

OK'd by Jason Thorpe
 1.7  14-Sep-2003  christos handle siginfo for deferred signals. Allocate a ksiginfo pool, and store
the information there.
TODO:
1. since timer stuff gets called from an interrupt context, we could
preallocate ksiginfo_t's from the pool, so we don't need a kmem
pool.
2. probably the sa signal delivery syscall can be changed to take
a ksiginfo_t so we can use only one pool.
3. maybe when we add realtime signal support, add a resource limit
on the number of ksiginfo_t's a process can allocate.
 1.6  06-Sep-2003  christos SA_SIGINFO changes.
 1.5  29-Jun-2003  fvdl branches: 1.5.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.4  28-Jun-2003  darrenr Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records. The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
 1.3  18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.2  10-Dec-2001  thorpej branches: 1.2.2; 1.2.4;
Move the code that walks the process's VM map during a coredump
into uvm_coredump_walkmap(), and use callbacks into the coredump
routine to do something with each section.
 1.1  08-Dec-2001  thorpej Make the coredump routine exec-format/emulation specific. Split
out traditional NetBSD coredump routines into core_netbsd.c and
netbsd32_core.c (for COMPAT_NETBSD32).
 1.2.4.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.4.1  10-Dec-2001  thorpej file core_netbsd.c was added on branch kqueue on 2002-01-10 19:59:38 +0000
 1.2.2.3  09-Jan-2002  nathanw LWPify new interfaces.
 1.2.2.2  08-Jan-2002  nathanw Catch up to -current.
 1.2.2.1  10-Dec-2001  nathanw file core_netbsd.c was added on branch nathanw_sa on 2002-01-08 00:32:29 +0000
 1.5.2.7  11-Dec-2005  christos Sync with head.
 1.5.2.6  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.5.2.5  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.5.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.5.2.2  03-Aug-2004  skrll Sync with HEAD
 1.5.2.1  02-Jul-2003  darrenr Apply the aborted ktrace-lwp changes to a specific branch. This is just for
others to review, I'm concerned that patch fuziness may have resulted in some
errant code being generated but I'll look at that later by comparing the diff
from the base to the branch with the file I attempt to apply to it. This will,
at the very least, put the changes in a better context for others to review
them and attempt to tinker with removing passing of 'struct lwp' through
the kernel.
 1.8.6.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.8.4.1  29-Apr-2005  kent sync with -current
 1.11.2.1  21-Jun-2006  yamt sync with head.
 1.12.22.2  10-Dec-2006  yamt sync with head.
 1.12.22.1  22-Oct-2006  yamt sync with head
 1.14.52.2  04-May-2009  yamt sync with head.
 1.14.52.1  16-May-2008  yamt sync with head.
 1.14.50.1  18-May-2008  yamt sync with head.
 1.14.48.2  17-Jan-2009  mjf Sync with HEAD.
 1.14.48.1  02-Jun-2008  mjf Sync with HEAD.
 1.15.8.1  19-Jan-2009  skrll Sync with HEAD.
 1.15.6.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.16.8.1  05-Mar-2011  rmind sync with head
 1.17.4.1  08-Feb-2011  bouyer Sync with HEAD
 1.17.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.18.18.1  18-May-2014  rmind sync with head
 1.18.14.2  03-Dec-2017  jdolecek update from HEAD
 1.18.14.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.18.4.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.22.10.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.22.6.1  05-Feb-2017  skrll Sync with HEAD
 1.23.16.1  08-Apr-2020  martin Merge changes from current as of 20200406

RSS XML Feed