31 #include <sys/types.h> 53 kill(getpid(), SIGTRAP);
55 cprintf(
"Debug::breakpoint suppressed, compiled with NDEBUG\n");
70 bool SimpleFlag::_active =
false;
75 FlagsMap::iterator
i =
allFlags().find(name);
81 Flag::Flag(
const char *
name,
const char *desc)
82 : _name(name), _desc(desc)
85 allFlags().insert(make_pair(name,
this));
88 panic(
"Flag %s already defined!", name);
117 for (
auto&
k : _kids)
124 for (
auto&
k : _kids)
131 :
Flag(
"All",
"All Flags")
137 FlagsMap::iterator
i =
allFlags().begin();
138 FlagsMap::iterator end =
allFlags().end();
139 for (; i != end; ++
i)
140 if (i->second !=
this)
147 FlagsMap::iterator
i =
allFlags().begin();
148 FlagsMap::iterator end =
allFlags().end();
149 for (; i != end; ++
i)
150 if (i->second !=
this)
151 i->second->disable();
191 using namespace Debug;
192 FlagsMap::iterator
i =
allFlags().begin();
193 FlagsMap::iterator end =
allFlags().end();
194 for (; i != end; ++
i) {
#define panic(...)
This implements a cprintf based panic() function.
const std::string & name()
std::map< std::string, Flag * > FlagsMap
bool changeFlag(const char *s, bool value)
Flag * findFlag(const std::string &name)
Overload hash function for BasicBlockRange type.
void setDebugFlag(const char *string)
void clearDebugFlag(const char *string)
void cprintf(const char *format, const Args &...args)