debug.h
Go to the documentation of this file.
1 /* ----------------------------------------------------------------------------
2 
3  * GTSAM Copyright 2010, Georgia Tech Research Corporation,
4  * Atlanta, Georgia 30332-0415
5  * All Rights Reserved
6  * Authors: Frank Dellaert, et al. (see THANKS for the full author list)
7 
8  * See LICENSE for the license information
9 
10  * -------------------------------------------------------------------------- */
11 
19 #include <gtsam/base/FastMap.h>
20 #include <gtsam/global_includes.h>
21 #include <string>
22 
23 
24 // This file defines granular debugging flags that may be switched on and off
25 // at run time. Typical usage is 'if(ISDEBUG("myFunction"))' to check if the
26 // 'myFunction' flag is enabled, and SETDEBUG("myFunction", true) to enable
27 // this flag, or SETDEBUG("myFunction", false) to disable it.
28 //
29 // Debug flags are created automatically as they are accessed, so they can be
30 // used immediately without explicitly creating them. Each flag defaults to
31 // 'false', i.e. disabled.
32 //
33 // For these macro to have any effect, granular debugging must be enabled by
34 // defining GTSAM_ENABLE_DEBUG. If NDEBUG is not defined, then
35 // GTSAM_ENABLE_DEBUG will be automatically defined and thus granular
36 // debugging enabled.
37 
38 #ifndef NDEBUG
39 #ifndef GTSAM_ENABLE_DEBUG
40 #define GTSAM_ENABLE_DEBUG
41 #endif
42 #endif
43 
44 namespace gtsam {
45  GTSAM_EXTERN_EXPORT FastMap<std::string, ValueWithDefault<bool,false> > debugFlags;
46 
47  // Non-guarded use led to crashes, and solved in commit cd35db2
48  bool GTSAM_EXPORT guardedIsDebug(const std::string& s);
49  void GTSAM_EXPORT guardedSetDebug(const std::string& s, const bool v);
50 
51  // function to check if compiled version has debug information
52  bool GTSAM_EXPORT isDebugVersion();
53 }
54 
55 #undef ISDEBUG
56 #undef SETDEBUG
57 
58 #ifdef GTSAM_ENABLE_DEBUG
59 
60 #define ISDEBUG(S) (gtsam::guardedIsDebug(S))
61 #define SETDEBUG(S,V) ((void)(gtsam::guardedSetDebug(S,V)))
62 
63 #else
64 
65 #define ISDEBUG(S) (false)
66 #define SETDEBUG(S,V) ((void)false)
67 
68 #endif
69 
gtsam::debugFlags
GTSAM_EXPORT FastMap< std::string, ValueWithDefault< bool, false > > debugFlags
Definition: debug.cpp:28
global_includes.h
Included from all GTSAM files.
s
RealScalar s
Definition: level1_cplx_impl.h:126
gtsam::guardedIsDebug
bool guardedIsDebug(const std::string &s)
Definition: debug.cpp:35
gtsam::guardedSetDebug
void guardedSetDebug(const std::string &s, const bool v)
Definition: debug.cpp:43
gtsam
traits
Definition: SFMdata.h:40
v
Array< int, Dynamic, 1 > v
Definition: Array_initializer_list_vector_cxx11.cpp:1
gtsam::isDebugVersion
bool isDebugVersion()
Definition: debug.cpp:50
FastMap.h
A thin wrapper around std::map that uses boost's fast_pool_allocator.


gtsam
Author(s):
autogenerated on Sat Nov 16 2024 04:02:10