blob: c11c24b0e42a36a336fbda247ff549a1ea468bd4 [file] [log] [blame]
Enrico Granata53ed89c2015-03-04 22:59:20 +00001//===--------------------- LLDBAssert.cpp --------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#include "lldb/Utility/LLDBAssert.h"
Enrico Granata53ed89c2015-03-04 22:59:20 +000011
Zachary Turnera893d302015-03-06 20:45:43 +000012#include "llvm/Support/Format.h"
13#include "llvm/Support/raw_ostream.h"
14#include "llvm/Support/Signals.h"
15
16using namespace llvm;
Enrico Granata53ed89c2015-03-04 22:59:20 +000017using namespace lldb_private;
18
19void
20lldb_private::lldb_assert (int expression,
21 const char* expr_text,
22 const char* func,
23 const char* file,
24 unsigned int line)
25{
26 if (expression)
27 ;
28 else
29 {
Zachary Turnera893d302015-03-06 20:45:43 +000030 errs() << format("Assertion failed: (%s), function %s, file %s, line %u\n",
31 expr_text, func, file, line);
32 errs() << "backtrace leading to the failure:\n";
33 llvm::sys::PrintStackTrace(errs());
34 errs() << "please file a bug report against lldb reporting this failure log, and as many details as possible\n";
Enrico Granata53ed89c2015-03-04 22:59:20 +000035 }
36}