freebsd-skq/usr.bin/gcore/gcore.1
attilio 6ab6342130 Fix the way the segments are included in the gcore outputs (with the
default invokation):
- Right now if segments are not writable are not included. Remove this.
- Right now if a segment is mapped with NOCORE the check is not honoured.
  Change this by checking the newly added flag, from libutil,
  KVME_FLAG_NOCOREDUMP.

Besides that, add a new flag (-f) that forces a 'full' dump of all the
segments excluding just the malformed ones. This might be used very
carefully as, among the reported segments, there could be memory
mapped areas that could be vital to program execution.

Sponsored by:	Sandvine Incorporated
Discussed with:	kib
Reviewed by:	emaste
Tested by:	Sandvine Incorporated
MFC after:	2 weeks
2010-07-14 17:16:25 +00:00

108 lines
3.5 KiB
Groff

.\" Copyright (c) 1983, 1990, 1992, 1993
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)gcore.1 8.2 (Berkeley) 4/18/94
.\" $FreeBSD$
.\"
.Dd July 14, 2010
.Dt GCORE 1
.Os
.Sh NAME
.Nm gcore
.Nd get core images of running process
.Sh SYNOPSIS
.Nm
.Op Fl f
.Op Fl s
.Op Fl c Ar core
.Op Ar executable
.Ar pid
.Sh DESCRIPTION
The
.Nm
utility creates a core image of the specified process,
suitable for use with
.Xr gdb 1 .
By default, the core is written to the file
.Dq Pa core.<pid> .
The process identifier,
.Ar pid ,
must be given on the command line.
.Pp
The following options are available:
.Bl -tag -width indent
.It Fl c
Write the core file to the specified file instead of
.Dq Pa core.<pid> .
.It Fl f
Dumps all the available segments, excluding only the malformed ones and
un-dumpable ones. Differently from the default invocation, it also dumps
device-mapped and sglist-mapped areas that may invalidate the state of
some transactions. This flag, then, may be used very carefully, when the
full behaviour of the application is full-understood and the fallouts can
be easilly controlled.
.It Fl s
Stop the process while gathering the core image, and resume it
when done.
This guarantees that the resulting core dump will
be in a consistent state.
The process is resumed even if it was
already stopped.
The same effect can be achieved manually with
.Xr kill 1 .
.El
.Sh FILES
.Bl -tag -width /var/log/messages -compact
.It Pa core.<pid>
the core image
.El
.Sh HISTORY
A
.Nm
utility appeared in
.Bx 4.2 .
.Sh BUGS
Because of the
.Xr ptrace 2
usage
.Nm
may not work with processes which are actively investigated with
.Xr truss 1
or
.Xr gdb 1 .
Additionally, interruptable sleeps may exit with EINTR.
.Pp
The
.Nm
utility is not compatible with the original
.Bx 4.2
version.