logging-enhancements-need-ctime-decl-20011011
[openafs.git] / src / util / assert.c
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  * 
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 /* ReallyAbort:  called from assert. May/85 */
11 #include <afsconfig.h>
12 #include <afs/param.h>
13 #include <stdlib.h>
14 #ifdef HAVE_SYS_TIME_H
15 #include <sys/time.h>
16 #endif
17
18 RCSID("$Header$");
19
20 #include <stdio.h>
21
22 #ifdef AFS_NT40_ENV
23 void afs_NTAbort(void)
24 {
25     _asm int 3h; /* always trap. */
26 }
27 #endif
28
29
30 void AssertionFailed(char *file, int line)
31 {
32     char tdate[26];
33     time_t when;
34
35     time(&when);
36     strcpy(tdate, ctime(&when));
37     tdate[24] = '0';
38     fprintf(stderr, "%s: Assertion failed! file %s, line %d.\n",
39         tdate, file, line);
40     fflush(stderr);
41 #ifdef AFS_NT40_ENV
42     afs_NTAbort();
43 #else
44     abort();
45 #endif
46 }
47