Vuo  2.4.0
Classes | Macros | Functions | Variables
VuoLog.cc File Reference

Description

VuoLog implementation.

Definition in file VuoLog.cc.

Go to the source code of this file.

Classes

struct  VuoCrashReport_infoType
 Data to be inserted into macOS crash reports. More...
 
struct  NSOperatingSystemVersion
 Return value of -[NSProcessInfo operatingSystemVersion], from NSProcessInfo.h. More...
 

Macros

#define VuoCrashReport_alignment   __attribute__((aligned(8)))
 Align on 8-byte boundaries. More...
 

Functions

void VuoTerminateHandler ()
 Log the timestamp at which std::terminate was called, so we can tell whether the logged exceptions are related to it. More...
 
double VuoLogGetTime (void)
 Returns the number of seconds (including fractional seconds) since an arbitrary start time. More...
 
void VuoLog_recordTime (const char *name, double time)
 Adds time to the specified profile name. More...
 
double VuoLogGetElapsedTime (void)
 Returns the number of seconds (including fractional seconds) since this module was loaded. More...
 
void VuoLog_statusF (const char *moduleName, const char *file, const unsigned int linenumber, const char *function, const char *format,...)
 Helper for VuoLog_status. More...
 
static NSOperatingSystemVersion VuoLog_getOSVersion (void)
 Returns the current operating system version. More...
 
bool VuoLog_isDebuggerAttached (void)
 Returns true if the current process is being debugged (either launched by LLDB/Instruments, or the LLDB/Instruments attached after the process launched). More...
 
void VuoLog (const char *moduleName, const char *file, const unsigned int linenumber, const char *function, const char *format,...)
 Outputs a message to the system log and to stderr. More...
 
bool VuoIsDebugEnabled (void)
 Returns true if debug mode is enabled. More...
 
void VuoLog_backtrace (void)
 Prints the stack backtrace to stderr. More...
 
void VuoLog_replaceString (char *wholeString, const char *substringToRemove, const char *replacement)
 Removes all occurrences of a substring. More...
 
vector< string > VuoLog_getBacktrace (void)
 Returns the stack backtrace. More...
 

Variables

static std::terminate_handler nextTerminateHandler = nullptr
 The existing std::terminate handler before we installed ours. More...
 
double VuoLogStartTime
 The time when this module was loaded. More...
 
const int VuoLogHistoryItems = 20
 How many VLog messages to include in crash reports. More...
 
char * VuoLogHistory [VuoLogHistoryItems]
 VLog messages to include in crash reports. More...
 
dispatch_queue_t VuoLogHistoryQueue
 Serializes access to VuoLogHistory. More...
 
static pthread_t VuoLog_mainThread = nullptr
 To later identify which is the main thread. More...
 
static const char * VuoLog_executableName = nullptr
 The process's main executable name (as opposed to VuoLog_moduleName, the dylib the log function was called from). More...
 

Class Documentation

◆ VuoCrashReport_infoType

struct VuoCrashReport_infoType
Class Members
unsigned int version VuoCrashReport_alignment
char *message VuoCrashReport_alignment Shows up in the crash report's "Application Specific Information" section.
char *signature VuoCrashReport_alignment
char *backtrace VuoCrashReport_alignment
char *message2 VuoCrashReport_alignment Shows up in the crash report's "Application Specific Information" section, above message.
void *reserved VuoCrashReport_alignment
void *reserved2 VuoCrashReport_alignment

◆ NSOperatingSystemVersion

struct NSOperatingSystemVersion
Class Members
long majorVersion
long minorVersion
long patchVersion

Macro Definition Documentation

◆ VuoCrashReport_alignment

#define VuoCrashReport_alignment   __attribute__((aligned(8)))

Align on 8-byte boundaries.

Definition at line 197 of file VuoLog.cc.

Function Documentation

◆ VuoLog_getBacktrace()

vector< string > VuoLog_getBacktrace ( void  )

Returns the stack backtrace.

Definition at line 642 of file VuoLog.cc.

◆ VuoLog_getOSVersion()

static NSOperatingSystemVersion VuoLog_getOSVersion ( void  )
static

Returns the current operating system version.

Definition at line 257 of file VuoLog.cc.

◆ VuoLog_replaceString()

void VuoLog_replaceString ( char *  wholeString,
const char *  substringToRemove,
const char *  replacement 
)

Removes all occurrences of a substring.

replacement must be shorter than the expanded substringToRemove.

Definition at line 624 of file VuoLog.cc.

◆ VuoTerminateHandler()

void VuoTerminateHandler ( )

Log the timestamp at which std::terminate was called, so we can tell whether the logged exceptions are related to it.

Definition at line 47 of file VuoLog.cc.

Variable Documentation

◆ nextTerminateHandler

std::terminate_handler nextTerminateHandler = nullptr
static

The existing std::terminate handler before we installed ours.

Definition at line 41 of file VuoLog.cc.

◆ VuoLog_executableName

const char* VuoLog_executableName = nullptr
static

The process's main executable name (as opposed to VuoLog_moduleName, the dylib the log function was called from).

Definition at line 121 of file VuoLog.cc.

◆ VuoLog_mainThread

pthread_t VuoLog_mainThread = nullptr
static

To later identify which is the main thread.

Definition at line 120 of file VuoLog.cc.

◆ VuoLogHistory

char* VuoLogHistory[VuoLogHistoryItems]

VLog messages to include in crash reports.

Definition at line 101 of file VuoLog.cc.

◆ VuoLogHistoryItems

const int VuoLogHistoryItems = 20

How many VLog messages to include in crash reports.

Definition at line 100 of file VuoLog.cc.

◆ VuoLogHistoryQueue

dispatch_queue_t VuoLogHistoryQueue

Serializes access to VuoLogHistory.

Definition at line 102 of file VuoLog.cc.

◆ VuoLogStartTime

double VuoLogStartTime

The time when this module was loaded.

Definition at line 98 of file VuoLog.cc.