Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
dart::DynamicAssertionHelper Class Reference

#include <assert.h>

Inheritance diagram for dart::DynamicAssertionHelper:
dart::Assert dart::Expect

Public Member Functions

 DynamicAssertionHelper (const char *file, int line)
 

Protected Member Functions

void Print (const char *format, va_list arguments, bool will_abort=false) const
 
 DISALLOW_IMPLICIT_CONSTRUCTORS (DynamicAssertionHelper)
 

Protected Attributes

const char *const file_
 
const int line_
 

Detailed Description

Definition at line 27 of file assert.h.

Constructor & Destructor Documentation

◆ DynamicAssertionHelper()

dart::DynamicAssertionHelper::DynamicAssertionHelper ( const char *  file,
int  line 
)
inline

Definition at line 29 of file assert.h.

30 : file_(file), line_(line) {}
const char *const file_
Definition assert.h:37

Member Function Documentation

◆ DISALLOW_IMPLICIT_CONSTRUCTORS()

dart::DynamicAssertionHelper::DISALLOW_IMPLICIT_CONSTRUCTORS ( DynamicAssertionHelper  )
protected

◆ Print()

void dart::DynamicAssertionHelper::Print ( const char *  format,
va_list  arguments,
bool  will_abort = false 
) const
protected

Definition at line 19 of file assert.cc.

21 {
22 // Take only the last 1KB of the file name if it is longer.
23 const intptr_t file_len = strlen(file_);
24 const intptr_t file_offset = (file_len > (1 * KB)) ? file_len - (1 * KB) : 0;
25 const char* file = file_ + file_offset;
26
27 // Print the file and line number into the buffer.
28 char buffer[4 * KB];
29 MSAN_UNPOISON(buffer, sizeof(buffer));
30 intptr_t file_and_line_length =
31 snprintf(buffer, sizeof(buffer), "%s: %d: error: ", file, line_);
32
33 // Print the error message into the buffer.
34 vsnprintf(buffer + file_and_line_length,
35 sizeof(buffer) - file_and_line_length, format, arguments);
36
37 // Print the buffer on stderr and/or syslog.
38 Syslog::PrintErr("%s\n", buffer);
39#if defined(DART_HOST_OS_ANDROID)
40 if (will_abort && (&android_set_abort_message != nullptr)) {
41 android_set_abort_message(buffer);
42 }
43#endif // defined(DART_HOST_OS_ANDROID)
44}
static void PrintErr(const char *format,...) PRINTF_ATTRIBUTE(1
static const uint8_t buffer[]
uint32_t uint32_t * format
#define MSAN_UNPOISON(ptr, len)
constexpr intptr_t KB
Definition globals.h:528

Member Data Documentation

◆ file_

const char* const dart::DynamicAssertionHelper::file_
protected

Definition at line 37 of file assert.h.

◆ line_

const int dart::DynamicAssertionHelper::line_
protected

Definition at line 38 of file assert.h.


The documentation for this class was generated from the following files: