46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
/* -------------------------------------------------------------------------
|
|
*
|
|
* assert.c
|
|
* Assert code.
|
|
*
|
|
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
* Portions Copyright (c) 2010-2012 Postgres-XC Development Group
|
|
*
|
|
*
|
|
* IDENTIFICATION
|
|
* $PostgreSQL: pgsql/src/backend/utils/error/assert.c,v 1.35 2008/01/01 19:45:53 momjian Exp $
|
|
*
|
|
* NOTE
|
|
* This should eventually work with elog()
|
|
*
|
|
* -------------------------------------------------------------------------
|
|
*/
|
|
#include "gtm/gtm_c.h"
|
|
#include "gtm/assert.h"
|
|
|
|
#include <unistd.h>
|
|
|
|
bool assert_enabled = false;
|
|
|
|
/*
|
|
* ExceptionalCondition - Handles the failure of an Assert()
|
|
*
|
|
* Note: this can't actually return, but we declare it as returning int
|
|
* because the TrapMacro() macro might get wonky otherwise.
|
|
*/
|
|
int ExceptionalCondition(const char* conditionName, const char* errorType, const char* fileName, int lineNumber)
|
|
{
|
|
if (!PointerIsValid(conditionName) || !PointerIsValid(fileName) || !PointerIsValid(errorType)) {
|
|
fprintf(stderr, "TRAP: ExceptionalCondition: bad arguments\n");
|
|
} else {
|
|
fprintf(stderr, "TRAP: %s(\"%s\", File: \"%s\", Line: %d)\n", errorType, conditionName, fileName, lineNumber);
|
|
}
|
|
|
|
/* Usually this shouldn't be needed, but make sure the msg went out */
|
|
fflush(stderr);
|
|
|
|
abort();
|
|
return 0;
|
|
}
|