[CALL FOR TESTERS] New system call: abort2()

Wojciech A. Koszek dunstan at freebsd.czest.pl
Thu Dec 15 14:35:23 PST 2005


(discussed task was picked from Poul-Henning Kamp's TODO list)

Hackers,
I've implemented abort2() system call. Works just like abort(3), but
delivers signal reliably. Here is a prototype:

	abort2(const char *why, int nargs, void **args);

"why" is reason of program abort, "nargs" is number of arguments
passed in "args". Both "why" and "args" (with "%p" format) will be
printed via log(9). Sample output:

[..]
pid <3004> <abort2> abort2: ABORT2 <arg0:0x62612f2e>
pid <3019> <abort2> abort2: invalid argument
[..]

I put two versions: one implemented as KLD so that more people can test
it without a problem:

	http://freebsd.czest.pl/dunstan/FreeBSD/abort2/abort2-0.3.tgz

..and also as a patch:

	http://freebsd.czest.pl/dunstan/FreeBSD/abort2/diff.1.abort2-sycall

If I miss some tests, please let me know, especially in
user<->kernelspace interaction area. (currently I run patched kernel and
couldn't get a panic in testing process).

Short description - function:

	abort2(const char *why, int nargs, void **args);

..never returns. If improper arguments are used, instead of SIGABRT,
SIGKILL is delivered. By improper arguments I understand: invalid
pointers -- "why" or "args" or  0 > "nargs" > 16.

Comments are welcome!
-- 
* Wojciech A. Koszek && dunstan at FreeBSD.czest.pl


More information about the freebsd-hackers mailing list