Commit Graph

90 Commits

Author SHA1 Message Date
jhb
6952dd3772 Add various utrace's for use with ktrace to the ELF runtime linker. To
activate the traces, set the LD_UTRACE (or LD_32_UTRACE) environment
variable.  This also includes code in kdump(8) to parse the traces.

Reviewed by:	kan, jdp
MFC after:	2 weeks
2007-01-09 17:50:05 +00:00
jhb
2381a2638d Add code to parse the utrace(2) entries generated by malloc(3) in a more
human-readable format.  Note that we report 'realloc(p, 0)' as 'free(p)'
since both cases are encoded the same way and 'free()' is more common
than a realloc() to 0.

MFC after:	1 week
2007-01-05 21:04:37 +00:00
rodrigc
e6806e98ac Add sockipprotoname() function. Decode the third parameter (protocol)
of a socket() call with sockipprotoname() if the first parameter (domain)
is PF_INET or PF_INET6.

Old parsing behavior before this change:
ping6    CALL  socket(PF_INET6,SOCK_RAW,0x3a)

New behavior after this change:
ping6    CALL  socket(PF_INET6,SOCK_RAW,IPPROTO_ICMPV6)
2007-01-04 04:46:59 +00:00
rodrigc
16a5e10cc2 Generate sockdomainname() function with auto_if_type() instead
of auto_or_type.

The old parsing code would incorrectly decode a socket() call in the
ping6 program as:
  CALL  socket(PF_PUP|PF_ECMA|PF_APPLETALK|PF_COIP|PF_SIP,SOCK_DGRAM,0)

The new parsing code decodes the same socket() call as:
  CALL  socket(PF_INET6,SOCK_DGRAM,0)
2007-01-04 04:28:17 +00:00
rodrigc
d665dfeb8c Add auto_if_type() function, which is similar to auto_switch_type().
However, auto_if_type() uses if/else statements in C instead
of a single switch statement, when mapping an integer value to
a #define.  For certain cases where multiple #define constants
alias to a single integer value, auto_if_type() makes things easier
to parse than auto_switch_type().
2007-01-04 04:18:03 +00:00
rodrigc
6e71b264de The second argument (type) to socket(2) is an enum, not a bitmask, so parse
it as an enum.

If an SCTP SOCK_SEQPACKET socket was opened, kdump would display this
wrong output:
 socket(PF_INET,SOCK_STREAM|SOCK_RDM|SOCK_SEQPACKET,0x84)

instead of this correct output:
 socket(PF_INET,SOCK_SEQPACKET,0x84)

MFC after:	2 weeks
2006-12-22 05:07:21 +00:00
maxim
7914c18982 o optname, the third {set,get}sockopt(2) argument, is an enum, not a bitmap.
Treat it accordingly.

PR:		bin/101642
MFC after:	3 weeks
2006-09-18 13:49:57 +00:00
maxim
6cf5ac79a2 o Fix some printf(3) format nits in my patch I submitted to kib@.
Submitted by:	ru
2006-07-12 13:36:08 +00:00
kib
a8c6961a45 Remove slipped in spaces.
Pointed out by:	maxim
Approved by:	pjd (mentor)
2006-07-12 12:42:47 +00:00
kib
d6a4e16f1b Check that the signal number is in range.
Submitted by:	maxim
MFC after:	1 week
Approved by:	pjd (mentor)
2006-07-12 12:41:56 +00:00
kib
41c3c00a6d Check that the signal number is in range.
Submitted by:	Michiel Boland <michiel boland org>
MFC after:	1 week
Approved by:	pjd (mentor)
2006-07-12 09:13:33 +00:00
rwatson
571f2f563f Add audit.h to mkioctls inclusion list: audit pipe ioctls need access
to the audit types.

Submitted by:	wsalamon
Obtained from:	TrustedBSD Project
2006-06-05 10:06:51 +00:00
netchild
5c6fb2961c Change kdump to print more useful information, i.e. it changes from
32229 telnet   CALL  mmap(0,0x8000,0x3,0x1002,0xffffffff,0,0,0)
 32229 telnet   CALL  open(0x2807bc28,0,0x1b6)
 32229 telnet   CALL  socket(0x2,0x2,0)
to
 32229 telnet   CALL mmap(0,0x8000,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,0xffffffff,0,0,0)
 32229 telnet   CALL  open(0x2807bc28,O_RDONLY,<unused>0x1b6)
 32229 telnet   CALL  socket(PF_INET,SOCK_DGRAM,0)

David wanted to implement the suggestions which came up at the review from
arch@ too, but real life rejected this proposal. So I commit what we already
got and let another volunteer pick the remaining work from the ideas list.

Submitted by:	"David Kirchner" <dpk@dpk.net>
Suggested by:	FreeBSD ideas list page
Reviewed by:	arch
2006-05-20 14:27:22 +00:00
ru
4de1ee30af -mdoc sweep. 2005-11-18 10:36:29 +00:00
rwatson
b52b6c9313 Add "-s" argument to kdump to suppress the display of I/O data.
MFC after:	1 week
2005-11-12 14:21:48 +00:00
rwatson
fcf2b08191 Add a "-H" argument to kdump, which causes kdump to print an additional
field holding the threadid.  This is more useful for libthr than
libpthread, but still quite useful in libpthread as it can be used to
process interlaced records from multiple threads over the course of a
system call.

Detect old ktr_buffer values using the heuristic "if it's negative,
then it must not be a valid threadid".  This may leave something to be
desired.

MFC after:	1 month
Reviewed by:	davidxu
2005-11-01 14:48:23 +00:00
gnn
0e3a2894a6 Update kdump manual page with information on the dump format.
Add a table with the different types of operations traced.

Reviewed by:	Ruslan Ermilov
Approved by:	Robert Watson (mentor)
2005-01-28 12:17:33 +00:00
ru
15deca3fae Place a function prototype correctly.
Submitted by:	Divacky Roman
2004-09-19 14:54:35 +00:00
mlaier
f60cf9b58b Commit userland part of pf version 3.5 from OpenBSD (OPENBSD_3_5_BASE). 2004-06-16 23:39:33 +00:00
ru
2a0b21efc2 Bump document date on behalf of the -E option. 2004-05-18 20:42:36 +00:00
phk
2855bdf0d9 Respect decimal flag when dumping USER type records. 2004-03-25 12:33:55 +00:00
des
33fda27b84 Use the -H option instead of the deprecated -follow predicate. 2004-02-25 21:45:41 +00:00
peter
1d2505f78a First pass at attempted debrucification:
- sort the -E switch into the right place.
- add previously missing -p pid in usage (from the last few commits).
- add -E to usage.
- consistently use trfile in the man page.

I knew I shouldn't have touched the man page.  If I commit to a man page,
it just makes people suspicious. :-)
2003-12-08 22:47:59 +00:00
peter
770241da4d Add a -E (elapsed time) flag to kdump. This is like -T, except it is
relative to start of the dump.

Approved by:  re (scottl)
2003-12-07 01:06:32 +00:00
peter
cd6f53b88d Two enhancements for kdump.
1) add a "-p pid", which is rather useful for selecting a single pid in
a combined trace file (eg: with ktrace -i).
2) display binary genio data in a more precise format.
2003-06-03 01:44:43 +00:00
jhb
038218e801 Add a default case that just outputs a new line for the case of an
unknown header type.
2003-03-13 18:58:39 +00:00
jhb
709f5b89f7 Teach kdump(8) to handle events marked with KTR_DROP. If a record has
KTR_DROP set in its header, then we output an extra line to stdout to
indicate that events were dropped between the previous record and this
record.  It is a bit trickier because we need to always notify the user
if events are dropped even if KTR_DROP is set on a record of a type that
we aren't interested in since kdump(8) doesn't know if the dropped events
were of the types that the user has requested.  To avoid outputting
multiple events dropped notices in between actual event logs, a state
variable is set whenever a drop is logged and cleared whenever an actual
record is output.

Requested by:	phk
2003-03-13 18:46:35 +00:00
peter
60fad63fbf Kill references to netns in comment about how it conflicted with netipx so
it was ignored all this time.
2003-03-05 19:19:08 +00:00
bde
8d4dce1438 Backed out revs 1.32-1.33. The problem has been fixed better by
depolluting <netinet/if_gre.h> in the !_KERNEL case.

Reviewed by:	sobomax
2002-09-16 10:06:02 +00:00
sobomax
e2042467a2 Also add #include <netinet/in_systm.h> before <neinet/ip.h> to fix the
world.

Submitted by:	Brooks Davis <brooks@one-eyed-alien.net>
2002-09-07 12:20:47 +00:00
sobomax
8a9b28b5fb Add #include <netinet/ip.h> in attempt to fix the world. 2002-09-07 06:16:22 +00:00
dwmalone
4233e58352 Improve WARNS situation for kdump:
1) Define _KERNEL while including sys/time.h to get some function prototypes.
2) Add prototypes and ANSIify definitions.
3) Constness changes.
4) Remove register keyword.
5) Actually return a sensible value from main.
6) Make fread_tail take a void * instead of a char *.
7) Avoid a signedness warning by casting to a size_t. Should be safe
   enough 'cos we also check for nonnegativity.
8) Be extra chummy with sigset_t rather than passing a struct to printf
   and pretending it is an int.
2002-07-28 16:05:07 +00:00
ru
1419e21345 Dependencies are delimited by space not tab. 2002-07-23 09:15:45 +00:00
obrien
bc61fc95d8 Consistently use FBSDID 2002-06-30 05:25:07 +00:00
markm
1f92859c5f Better warnings fixes. Use more sane argument types instead of bogus casts
Submitted by:	bde
2002-06-24 16:35:19 +00:00
markm
cea30675de Better fix for style.
Suggested by:	ru (but modified a bit by markm)
2002-06-21 11:06:11 +00:00
markm
82d0974113 Fix warnings generated elsewhere. 2002-06-21 10:22:39 +00:00
markm
7b6b6eb48b Style tidy-up. 2002-06-21 10:21:21 +00:00
ru
ff35a38e49 I now don't seem to be able to reproduce the -DNOCLEAN buildworld
breakage with ioctl.c.  The .depend file should track dependencies
just fine, and the worst we can have is to miss new ioctls.

But I still think it's a good idea to have -DNOCLEAN build produce
the same ioctl.c as it would without -DNOCLEAN.

Prodded for a long time by:	bde
2002-04-11 14:49:32 +00:00
dwmalone
3bbc58aa98 Const the code. 2002-04-01 10:45:09 +00:00
ru
9ff3e0dbcd Back out revision 1.13 (addition of ipfilter includes). A proper
fix for the relevant world breakage was later committed in revision
1.20, and this now breaks -DNO_IPFILTER world.
2002-03-25 19:12:05 +00:00
obrien
cf94102c07 Really fix this work to work. While rev 1.24 did allow awk to run w/o
complaining; the resulting output was useless.
2001-11-01 02:16:10 +00:00
obrien
299c3dd9bc Utilize the property of 'echo' in that it removes \n from its input. 2001-11-01 01:50:38 +00:00
dd
911ca14c87 Remove whitespace at EOL. 2001-07-15 08:06:20 +00:00
ru
36f138439b mdoc(7) police: removed HISTORY info from the .Os call. 2001-07-10 14:16:33 +00:00
ru
4474a53d43 Backout rev. 1.22 as the change that caused problems was also backed out. 2001-05-24 08:47:57 +00:00
ru
2a37b01164 Work around the side effect of src/include/Makefile,v 1.137 changes.
(The proper fix is to add missing #include directives.)
2001-05-21 17:06:26 +00:00
ru
49e5408725 Execute this script in a "C" locale environment.
Currently, cs_CZ.ISO_8859-2 locale's collation sequence is
broken, and this caused grep(1) to skip some include files.

Reported by:	Michal Mertl <mime@traveller.cz>
2001-04-06 14:40:26 +00:00
ru
ba83ff266d Traverse ${DESTDIR}/usr/include in lexographical order.
This should fix problems reported recently on -current.
2001-03-27 16:15:25 +00:00
ken
24c4b1e75b Rewrite of the CAM error recovery code.
Some of the major changes include:

	- The SCSI error handling portion of cam_periph_error() has
	  been broken out into a number of subfunctions to better
	  modularize the code that handles the hierarchy of SCSI errors.
	  As a result, the code is now much easier to read.

	- String handling and error printing has been significantly
	  revamped.  We now use sbufs to do string formatting instead
	  of using printfs (for the kernel) and snprintf/strncat (for
	  userland) as before.

	  There is a new catchall error printing routine,
	  cam_error_print() and its string-based counterpart,
	  cam_error_string() that allow the kernel and userland
	  applications to pass in a CCB and have errors printed out
	  properly, whether or not they're SCSI errors.  Among other
	  things, this helped eliminate a fair amount of duplicate code
	  in camcontrol.

	  We now print out more information than before, including
	  the CAM status and SCSI status and the error recovery action
	  taken to remedy the problem.

	- sbufs are now available in userland, via libsbuf.  This
	  change was necessary since most of the error printing code
	  is shared between libcam and the kernel.

	- A new transfer settings interface is included in this checkin.
	  This code is #ifdef'ed out, and is primarily intended to aid
	  discussion with HBA driver authors on the final form the
	  interface should take.  There is example code in the ahc(4)
	  driver that implements the HBA driver side of the new
	  interface.  The new transfer settings code won't be enabled
	  until we're ready to switch all HBA drivers over to the new
	  interface.

src/Makefile.inc1,
lib/Makefile:		Add libsbuf.  It must be built before libcam,
			since libcam uses sbuf routines.

libcam/Makefile:	libcam now depends on libsbuf.

libsbuf/Makefile:	Add a makefile for libsbuf.  This pulls in the
			sbuf sources from sys/kern.

bsd.libnames.mk:	Add LIBSBUF.

camcontrol/Makefile:	Add -lsbuf.  Since camcontrol is statically
			linked, we can't depend on the dynamic linker
			to pull in libsbuf.

camcontrol.c:		Use cam_error_print() instead of checking for
			CAM_SCSI_STATUS_ERROR on every failed CCB.

sbuf.9:			Change the prototypes for sbuf_cat() and
			sbuf_cpy() so that the source string is now a
			const char *.  This is more in line wth the
			standard system string functions, and helps
			eliminate warnings when dealing with a const
			source buffer.

			Fix a typo.

cam.c:			Add description strings for the various CAM
			error status values, as well as routines to
			look up those strings.

			Add new cam_error_string() and
			cam_error_print() routines for userland and
			the kernel.

cam.h:			Add a new CAM flag, CAM_RETRY_SELTO.

			Add enumerated types for the various options
			available with cam_error_print() and
			cam_error_string().

cam_ccb.h:		Add new transfer negotiation structures/types.

			Change inq_len in the ccb_getdev structure to
			be "reserved".  This field has never been
			filled in, and will be removed when we next
			bump the CAM version.

cam_debug.h:		Fix typo.

cam_periph.c:		Modularize cam_periph_error().  The SCSI error
			handling part of cam_periph_error() is now
			in camperiphscsistatuserror() and
			camperiphscsisenseerror().

			In cam_periph_lock(), increase the reference
			count on the periph while we wait for our lock
			attempt to succeed so that the periph won't go
			away while we're sleeping.

cam_xpt.c:		Add new transfer negotiation code.  (ifdefed
			out)

			Add a new function, xpt_path_string().  This
			is a string/sbuf analog to xpt_print_path().

scsi_all.c:		Revamp string handing and error printing code.
			We now use sbufs for much of the string
			formatting code.  More of that code is shared
			between userland the kernel.

scsi_all.h:		Get rid of SS_TURSTART, it wasn't terribly
			useful in the first place.

			Add a new error action, SS_REQSENSE.  (Send a
			request sense and then retry the command.)
			This is useful when the controller hasn't
			performed autosense for some reason.

			Change the default actions around a bit.

scsi_cd.c,
scsi_da.c,
scsi_pt.c,
scsi_ses.c:		SF_RETRY_SELTO -> CAM_RETRY_SELTO.  Selection
			timeouts shouldn't be covered by a sense flag.

scsi_pass.[ch]:		SF_RETRY_SELTO -> CAM_RETRY_SELTO.

			Get rid of the last vestiges of a read/write
			interface.

libkern/bsearch.c,
sys/libkern.h,
conf/files:		Add bsearch.c, which is needed for some of the
			new table lookup routines.

aic7xxx_freebsd.c:	Define AHC_NEW_TRAN_SETTINGS if
			CAM_NEW_TRAN_CODE is defined.

sbuf.h,
subr_sbuf.c:		Add the appropriate #ifdefs so sbufs can
			compile and run in userland.

			Change sbuf_printf() to use vsnprintf()
			instead of kvprintf(), which is only available
			in the kernel.

			Change the source string for sbuf_cpy() and
			sbuf_cat() to be a const char *.

			Add __BEGIN_DECLS and __END_DECLS around
			function prototypes since they're now exported
			to userland.

kdump/mkioctls:		Include stdio.h before cam.h since cam.h now
			includes a function with a FILE * argument.

Submitted by:	gibbs (mostly)
Reviewed by:	jdp, marcel (libsbuf makefile changes)
Reviewed by:	des (sbuf changes)
Reviewed by:	ken
2001-03-27 05:45:52 +00:00