Ardour  9.0-pre0-582-g084a23a80d
libs/pbd/pbd/debug.h File Reference
#include <bitset>
#include <stdint.h>
#include <sstream>
#include "pbd/libpbd_visibility.h"
#include "pbd/timing.h"
#include <pthread.h>
Include dependency graph for libs/pbd/pbd/debug.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 PBD
 
 PBD::DEBUG
 

Macros

#define DEBUG_TRACE(bits, str)   if (((bits) & PBD::debug_bits).any()) { PBD::debug_print (# bits, str); }
 
#define DEBUG_STR_DECL(id)   std::stringstream __debug_str ## id;
 
#define DEBUG_STR(id)   __debug_str ## id
 
#define DEBUG_STR_APPEND(id, s)   __debug_str ## id << s;
 
#define DEBUG_ENABLED(bits)   (((bits) & PBD::debug_bits).any())
 
#define DEBUG_THREAD_SELF   pthread_self()
 
#define DEBUG_THREAD_PRINT(t)   t
 
#define DEBUG_TIMING_START(bits, td)   if (DEBUG_ENABLED (bits)) { td.start_timing (); }
 
#define DEBUG_TIMING_ADD_ELAPSED(bits, td)   if (DEBUG_ENABLED (bits)) { td.add_elapsed (); }
 
#define DEBUG_TIMING_RESET(bits, td)   if (DEBUG_ENABLED (bits)) { td.reset (); }
 
#define DEBUG_RESULT(type, var, ...)   type var = __VA_ARGS__
 
#define DEBUG_RESULT_CAST(type, var, cast_expr, ...)   type var = cast_expr __VA_ARGS__
 
#define DEBUG_ASSIGN(var, expr)   var = expr
 

Typedefs

typedef std::bitset< 256 > PBD::DebugBits
 

Functions

DebugBits PBD::new_debug_bit (const char *name)
 
void PBD::debug_print (const char *prefix, std::string str)
 
void PBD::debug_only_print (const char *prefix, std::string str)
 
void PBD::set_debug_bits (DebugBits bits)
 
int PBD::parse_debug_options (const char *str)
 
void PBD::list_debug_options ()
 

Variables

DebugBits PBD::debug_bits
 
DebugBits PBD::DEBUG::Stateful
 
DebugBits PBD::DEBUG::Properties
 
DebugBits PBD::DEBUG::FileManager
 
DebugBits PBD::DEBUG::Pool
 
DebugBits PBD::DEBUG::EventLoop
 
DebugBits PBD::DEBUG::AbstractUI
 
DebugBits PBD::DEBUG::Configuration
 
DebugBits PBD::DEBUG::FileUtils
 
DebugBits PBD::DEBUG::UndoHistory
 
DebugBits PBD::DEBUG::Timing
 
DebugBits PBD::DEBUG::Threads
 
DebugBits PBD::DEBUG::ThreadName
 
DebugBits PBD::DEBUG::Locale
 
DebugBits PBD::DEBUG::StringConvert
 
DebugBits PBD::DEBUG::DebugTimestamps
 
DebugBits PBD::DEBUG::DebugLogToGUI
 
DebugBits PBD::DEBUG::WavesMIDI
 
DebugBits PBD::DEBUG::WavesAudio
 

Macro Definition Documentation

◆ DEBUG_ASSIGN

#define DEBUG_ASSIGN (   var,
  expr 
)    var = expr

Definition at line 100 of file libs/pbd/pbd/debug.h.

◆ DEBUG_ENABLED

#define DEBUG_ENABLED (   bits)    (((bits) & PBD::debug_bits).any())

Definition at line 85 of file libs/pbd/pbd/debug.h.

◆ DEBUG_RESULT

#define DEBUG_RESULT (   type,
  var,
  ... 
)    type var = __VA_ARGS__

Definition at line 98 of file libs/pbd/pbd/debug.h.

◆ DEBUG_RESULT_CAST

#define DEBUG_RESULT_CAST (   type,
  var,
  cast_expr,
  ... 
)    type var = cast_expr __VA_ARGS__

Definition at line 99 of file libs/pbd/pbd/debug.h.

◆ DEBUG_STR

#define DEBUG_STR (   id)    __debug_str ## id

Definition at line 83 of file libs/pbd/pbd/debug.h.

◆ DEBUG_STR_APPEND

#define DEBUG_STR_APPEND (   id,
 
)    __debug_str ## id << s;

Definition at line 84 of file libs/pbd/pbd/debug.h.

◆ DEBUG_STR_DECL

#define DEBUG_STR_DECL (   id)    std::stringstream __debug_str ## id;

Definition at line 82 of file libs/pbd/pbd/debug.h.

◆ DEBUG_THREAD_PRINT

#define DEBUG_THREAD_PRINT (   t)    t

Definition at line 91 of file libs/pbd/pbd/debug.h.

◆ DEBUG_THREAD_SELF

#define DEBUG_THREAD_SELF   pthread_self()

Definition at line 90 of file libs/pbd/pbd/debug.h.

◆ DEBUG_TIMING_ADD_ELAPSED

#define DEBUG_TIMING_ADD_ELAPSED (   bits,
  td 
)    if (DEBUG_ENABLED (bits)) { td.add_elapsed (); }

Definition at line 95 of file libs/pbd/pbd/debug.h.

◆ DEBUG_TIMING_RESET

#define DEBUG_TIMING_RESET (   bits,
  td 
)    if (DEBUG_ENABLED (bits)) { td.reset (); }

Definition at line 96 of file libs/pbd/pbd/debug.h.

◆ DEBUG_TIMING_START

#define DEBUG_TIMING_START (   bits,
  td 
)    if (DEBUG_ENABLED (bits)) { td.start_timing (); }

Definition at line 94 of file libs/pbd/pbd/debug.h.

◆ DEBUG_TRACE

#define DEBUG_TRACE (   bits,
  str 
)    if (((bits) & PBD::debug_bits).any()) { PBD::debug_print (# bits, str); }

Definition at line 81 of file libs/pbd/pbd/debug.h.