File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / mpd / src / assert.c
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Nov 1 09:56:12 2016 UTC (7 years, 8 months ago) by misho
Branches: mpd, MAIN
CVS tags: v5_8p7, v5_8p1_cross, v5_8p1, v5_8, HEAD
mpd 5.8

    1: 
    2: /*
    3:  * assert.c
    4:  *
    5:  * Written by Archie Cobbs <archie@freebsd.org>
    6:  * Copyright (c) 1995-1999 Whistle Communications, Inc. All rights reserved.
    7:  * See ``COPYRIGHT.whistle''
    8:  */
    9: 
   10: #include "ppp.h"
   11: #include "log.h"
   12: 
   13: void
   14: DoAssert(const char *file, int line, const char *failedexpr)
   15: {
   16: #ifdef USE_BACKTRACE
   17:   void	*buffer[100];
   18:   char	**strings;
   19:   int	n, k;
   20: 
   21:   n = backtrace(buffer, 100);
   22:   strings = backtrace_symbols(buffer, n);
   23:   if (strings == NULL) {
   24:     Log(LG_ERR, ("No backtrace symbols found"));
   25:   } else {
   26:     for (k = 0; k < n; k++) {
   27:       Log(LG_ERR, ("%s", strings[k]));
   28:     }
   29:     free(strings);
   30:   }
   31: #endif
   32:   Log(LG_ERR, ("ASSERT \"%s\" failed: file \"%s\", line %d",
   33:     failedexpr, file, line));
   34: 
   35:   DoExit(EX_ERRDEAD);
   36: }
   37: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>