.\" @(#) thud.1 .\" .TH thud 1 "03 Nov 1904" .AT 3 .SH NAME thud \- run a program and catch null-pointer dereferences. .SH SYNOPSIS .B thud .B [-a| program [args] ... .sp 0 .SH DESCRIPTION .I thud runs programs which regularly dereference null pointers, catching the errors and logging information about them. It then "fixes" the program and lets it run normally thereafter. .PP It's purpose to to allow programs written for VAXes or other non-unix machines to continue to work, while reporting the location of the bug. .PP The bug is trypically a test of the form .nf .nj while (*p->q != 0) { ... p++; } .fi .ju which attempts to dereference a pointer without testing first to see if it is null. This is known as the "all the world's a VAX" bug. .PP It's default mode of operation is to catch the first dereference, report, and then map in a page of zeros at address 0 to allow the program to continue normally. .PP .TP .B \-a All signals will be caught, not just sigsegv .PP .SH FILES .sp 0 .SH "SEE ALSO" compress(1), fiz(1) .SH BUGS .SH DIAGNOSTICS .SH COMPATIBILITY .SH CHANGES .SH ACKNOWLEDGEMENTS .SH AUTHOR