summaryrefslogtreecommitdiffstats
path: root/sbin/savecore/savecore.c
Commit message (Collapse)AuthorAgeFilesLines
* Revision 1.61 changed the allocation of buffer 'buf' in DoFile() frommarcel2003-10-081-6/+0
| | | | | | | | | | | | | the stack to the heap to work around a problem on ia64. Now, roughly 16 months and two compiler updates later, it isn't an issue anymore in the sense that putting a 1M buffer on the stack just works and we don't actually need to work around anything anymore. However, since there's no advantage or need to put the buffer on the stack (again), this change merely removes the XXX comment describing that there's an explicit reason for the heap allocation. Hence, this change is a functional no-op. PR: ia64/38677
* Add a flag that reports the existence of a dump, and does nothing else.dougb2003-09-041-4/+20
| | | | | | | | The immediate purpose for this option is to use it in rc.d so that we can make savecore behavior conditional. Tremendous assistance with ideas and sanity checking provided by tjr and b@etek.chalmers.se.
* Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup,schweikh2003-01-011-1/+1
| | | | especially in troff files.
* Fix breakage caused by allocating the I/O buffer. There was amarcel2002-06-021-2/+5
| | | | | | | sizeof(buf) lurking around that I missed. PR: 38811 Submitted by: Adrian Colley <aecolley@spamcop.net>
* Work around a memory fault on ia64 caused by having the 1MB buffer onmarcel2002-05-271-1/+16
| | | | | the stack in DoFile(). This needs some investigation. In the mean time we do a one time malloc() for the buffer to have it on the heap instead.
* Make argument to printf match format.marcel2002-05-061-1/+1
|
* - revert back to vmcore.#fenner2002-05-051-92/+252
| | | | | | | | | | | | | | - reimplement -z - use syslog() - improve consistancy of messages - allow -f to recover cleared dumps - return bufsize to 1024 * 1024 - return the ability to write sparse files - update man page - fix minfree to require 2k for info file instead of the kernel size - include Berkeley copyright too due to amount of old code copied Submitted by: Chad David <davidc@acns.ab.ca>
* Restore the minfree functionality into savecore. This patchmux2002-05-041-7/+80
| | | | | | | | restores the check_space() function with small modifications to make it work with the current code. The patch was slightly modified by Bill Fenner to handle error messages better. Reviewed by: fenner
* Add FBSDID. Start errx(3) messages with lowercase. Remove a ')' with no '('.charnier2002-04-211-14/+15
| | | | | | In usage(), use fprintf(3) instead of errx(3), to make the printed string really start with `usage: ...'. Reviewed by: marcel
* Push the .info file contents out when we're done so people canphk2002-04-191-0/+1
| | | | read the description while the megs shift from one place to another.
* High-level changes (user visible):marcel2002-04-131-56/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | o Implement -c (clear) to clear previously kept headers (note that dumps not cleared will remain until -c is used), o Implement -f (force) to allow re-saving a previously saved dump, o Implement -k (keep) and make clearing the dump header the default, o Implement -v (verbose) and make most output conditional upon it, o Emit minimal output for the non-verbose case with the assumption that savecore is run mostly from within /etc/rc, o Update usage message to reflect what is and what's not, o mark -d as obsolete. Low-level changes: o Rename devname to device, for devname mirrors a global declaration and GCC 3.x warns about it, o Open the dump device R/W for clear and !keep to work, o Reorder the locals of DoFile according to style(9), o Remove newlines from strings passed to warn* and err*, o Use stat(2) to check if a dump has been saved before, o Truncate existing core and info files to support force, o First check for the magic and the version before we complain about parity errors. This prevents emitting parity error messages when there's no dump, o Keep track of the number of headers found and the number of headers saved to support the minimal output, o Close files we opened in DoFile. Not critical, but cleaner.
* Move generic disk ioctls from <sys/disklabel.h> to <sys/disk.h>.phk2002-04-081-1/+1
| | | | Sponsored by: DARPA & NAI Labs
* Make the kernel dump header endianness invariant by always dumpingmarcel2002-04-031-11/+15
| | | | | | | | | in dump byte order (=network byte order). Swap blocksize and dumptime to avoid extraneous padding on 64-bit architectures. Use CTASSERT instead of runtime checks to make sure the header is 512 bytes large. Various style(9) fixes. Reviewed by: phk, bde, mike
* Add long long casts so that this compiles on archs with 64-bit longs.jhb2002-04-011-4/+4
| | | | Pointy-hat to: phk
* Savecore:phk2002-03-311-745/+173
| | | | | | | | | | Commandline compatible with the previous savecore unless you specify any options, none of them are implemented (yet). Scans all devices marked "dump" or "swap" for dump header signatures and saves dumps off under a name which is a MD5 hash of the header information. This should give unique filenames. A *.info file contains ascii version of the header information.
* o remove __Pimp2002-03-211-16/+16
| | | | o remove main prototype
* Remove 'register' keyword.obrien2002-03-201-5/+5
| | | | | | It does not help modern compilers, and some may take some hit from it. (I also found several functions that listed *every* of its 10 local vars with "register" -- just how many free registers do people think machines have?)
* Sparc64 support.des2002-03-111-7/+7
|
* Remove some bogus "(off_t)(dumplo + value)" and "(off_t)dumplo" casts,peter2001-10-051-16/+18
| | | | | since dumplo is now an off_t. Scratch a couple of other itches as well. s/L_SET/SEEK_SET/
* Argh. Fix another >2GB savecore problem.peter2001-10-051-1/+1
| | | | Reported by: mki@mozone.net
* fix savecore so that it works on the alpha after the size changegallatin2001-09-131-2/+2
| | | | | | | | | | of dumpmag from an int to a u_long in rev 1.41 -- without this change, savecore will always fail like this: #savecore -v /var/crash dumplo = 874356736 (1707728 * 512) savecore: magic number mismatch (8fca0101 != 8fca0101) savecore: no core dump
* * Switch from doing compress(1)ed crashdumps with the -z flag to usingkris2001-09-061-34/+38
| | | | | | | | | | | gzip(1). gdb doesn't understand these, but then again it didn't understand compressed crashdumps either. * Change a stray lseek() into a Lseek() * Remove the extraneous prototype for log() which has apparently never existed in FreeBSD's sources Obtained from: NetBSD (partially) MFC after: 2 weeks
* Banish hard-coded KERNBASE references from savecore. Dynamicallypeter2001-08-241-1/+15
| | | | adjust to whatever kernbase is in the kernel that we are dumping.
* Silence non-constant format string warnings by marking functionskris2001-08-191-1/+1
| | | | | | | as __printflike()/__printf0like(), adding const, or adding missing "%s" format strings, as appropriate. MFC after: 2 weeks
* dumpmag is 'u_long dumpmag' in the kernel, not 'int'. If this worked onpeter2001-06-091-4/+6
| | | | | | the Alpha, it was because of luck that it was little endian. Tidy up the dumpsize/dumppages confusion and the out of date comments.
* 'int dumpsize; /* memory size in bytes */' is not good for machinespeter2001-06-081-3/+5
| | | | with 2GB or more of ram.
* Restore the -c option, which was accidentally removed from the getoptdes2001-03-061-1/+1
| | | | string two revisions ago.
* Document the new -k option in usage message and man page.des2001-02-161-1/+1
|
* Add a -k option that prevents clearing the dump after saving it.des2001-02-161-16/+57
| | | | | | | | | Use sysctlbyname() instead of sysctl(). Clear up and simplify the version extraction code. Attempt to detect stretches of zeroes in the dump and avoid writing them to disk to save space and time.
* Work much harder at obtaining a correct device node. If what devname(3)des2000-10-171-31/+89
| | | | | | | | | | | | returns doesn't exist, or doesn't match the desired device, fall back to scanning /dev for a matching node, and as a last resort, if that fails, try to create the node ourselves as /dev/dump. Add comments to several variables and functions. Clean up syslog(3) usage; use %m instead of strerror(3). Other minor cleanup.
* Remove superfluous code:des2000-09-281-78/+29
| | | | | | | | | | | 1) use devname() instead of searching /dev for the dump device 2) use fopen() instead of open() so we don't need to differentiate between compressing and not compressing when writing the core file or the kernel (zopen() returns a FILE *, so we just use fwrite() in both cases) There should be no functional changes.
* I'm not sure what changed to cause this, but using 'dirname' as a variablepeter2000-09-031-8/+8
| | | | | was colliding with dirname() in libc.a and causing a Sig 10/bus error. Just change dirname to savedir and be done with it.
* Tidy up the offset calculations.ps2000-05-091-5/+4
| | | | Submitted by: bde
* Read the correct size into kdumplo.ps2000-05-091-1/+1
| | | | Botched/Noticed by: peter
* Allow savecore to work on > 2GB partitions.ps2000-05-081-2/+4
| | | | Submitted by: peter
* Fixed style bugs in rev.1.28. Rev.1.28 was not submitted by bde.bde2000-03-201-2/+3
|
* Only character devices exsist these days. Make savecore understandps2000-03-201-33/+8
| | | | this.
* Fix bogus initialization of using a sledge hammer to quite -Wall, badobrien1999-12-211-5/+4
| | | | | | indention, and size issue between 32 and 64bit machines. Submitted by: bde
* When erroring out that there is not enough space to write the corefile,obrien1999-12-081-3/+5
| | | | | tell the user how much space is avaible for writing the corefile, and how much space we wanted.
* Allow character devices tooache1999-11-301-5/+5
|
* Fix savecore so that it operates correctly on character devices withphk1999-08-311-27/+90
| | | | | | sectorsizes up to 8k. Pointed out by: sos
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* Read dumpdev using sysctl(3) interface. Now savecore should work againluoqi1999-05-131-16/+22
| | | | after the dev_t changes.
* Fix savecore so that it works on alphasgallatin1999-03-121-1/+7
| | | | Reviewed by: Doug Rabson <dfr@nlsystems.com>
* Correct use of .Nm, add rcsid, remove unused #include.charnier1998-07-281-2/+5
|
* Fixed printf format errors.bde1998-06-281-1/+1
|
* Pickup _time_second instead of _timephk1998-03-301-2/+2
|
* compare return value from getopt against -1 rather than EOF, per the finalimp1997-03-291-1/+1
| | | | posix standard on the topic.
* Fix my yesterday's brain-o: don't account for the kilobytes twice.joerg1996-10-141-1/+1
|
* Yikes! Originally, i intended to apply the patch from PR # 1322,joerg1996-10-131-5/+6
| | | | | | | | | | | | | but Bill has beaten me on this. ;-) However, he missed the part to compute the kernelsize in kilobytes, so the minfree consideration was now overcautious. (I've also changed the return type of dump_size() to void since int was useless.) Being here, the fact that `vmcore' was written world-readable was just a plain security hole: everybody who was able to crash a kernel could later read any confidential information out of it at his will. Create it with umask 077 instead.
OpenPOWER on IntegriCloud