--disable-tracing at configure time now disables Trace() and Debug() gestures both.
authorMorgan Deters <mdeters@gmail.com>
Wed, 9 May 2012 21:52:38 +0000 (21:52 +0000)
committerMorgan Deters <mdeters@gmail.com>
Wed, 9 May 2012 21:52:38 +0000 (21:52 +0000)
src/util/Makefile.am
src/util/configuration.cpp
src/util/options.cpp
src/util/output.cpp
src/util/output.h

index 87fa2c8906131f2b0023dc61c9d3e2de71defd2d..dddcbb38cb242b90e162b7d4a37a780bbfb3c841 100644 (file)
@@ -88,6 +88,7 @@ BUILT_SOURCES = \
        integer.h \
        tls.h
 if CVC4_DEBUG
+if CVC4_TRACING
 # listing Debug_tags too ensures that make doesn't auto-remove it
 # after building (if it does, we don't get the "cached" effect with
 # the .tmp files below, and we have to re-compile and re-link each
@@ -96,6 +97,7 @@ BUILT_SOURCES += \
        Debug_tags.h \
        Debug_tags
 endif
+endif
 if CVC4_TRACING
 # listing Trace_tags too ensures that make doesn't auto-remove it
 # after building (if it does, we don't get the "cached" effect with
index 6f01d6cf455e5cdad72a3966a4284c8480d80915..d0fc3cd1ddd16a0f5514017eaadf4b222c08d8e1 100644 (file)
@@ -27,9 +27,9 @@
 #include "util/configuration_private.h"
 #include "cvc4autoconfig.h"
 
-#ifdef CVC4_DEBUG
+#if defined(CVC4_DEBUG) && defined(CVC4_TRACING)
 #  include "util/Debug_tags.h"
-#endif /* CVC4_DEBUG */
+#endif /* CVC4_DEBUG && CVC4_TRACING */
 
 #ifdef CVC4_TRACING
 #  include "util/Trace_tags.h"
@@ -132,21 +132,21 @@ bool Configuration::isBuiltWithTlsSupport() {
 }
 
 unsigned Configuration::getNumDebugTags() {
-#if CVC4_DEBUG
+#if defined(CVC4_DEBUG) && defined(CVC4_TRACING)
   /* -1 because a NULL pointer is inserted as the last value */
-  return sizeof(Debug_tags) / sizeof(Debug_tags[0]) - 1;
-#else /* CVC4_DEBUG */
+  return (sizeof(Debug_tags) / sizeof(Debug_tags[0])) - 1;
+#else /* CVC4_DEBUG && CVC4_TRACING */
   return 0;
-#endif /* CVC4_DEBUG */
+#endif /* CVC4_DEBUG && CVC4_TRACING */
 }
 
 char const* const* Configuration::getDebugTags() {
-#if CVC4_DEBUG
+#if defined(CVC4_DEBUG) && defined(CVC4_TRACING)
   return Debug_tags;
-#else /* CVC4_DEBUG */
+#else /* CVC4_DEBUG && CVC4_TRACING */
   static char const* no_tags[] = { NULL };
   return no_tags;
-#endif /* CVC4_DEBUG */
+#endif /* CVC4_DEBUG && CVC4_TRACING */
 }
 
 int strcmpptr(const char **s1, const char **s2){
@@ -154,7 +154,7 @@ int strcmpptr(const char **s1, const char **s2){
 }
 
 bool Configuration::isDebugTag(char const *tag){
-#if CVC4_DEBUG
+#if defined(CVC4_DEBUG) && defined(CVC4_TRACING)
   unsigned ntags = getNumDebugTags();
   char const* const* tags = getDebugTags();
   for (unsigned i = 0; i < ntags; ++ i) {
@@ -162,7 +162,7 @@ bool Configuration::isDebugTag(char const *tag){
       return true;
     }
   }
-#endif /* CVC4_DEBUG */
+#endif /* CVC4_DEBUG && CVC4_TRACING */
   return false;
 }
 
index d72734f402d96b0b0c5856363e615610dffd3348..140850a286dc5e21dd7cd84e771a14c5e980a28b 100644 (file)
@@ -559,18 +559,21 @@ throw(OptionException) {
           throw OptionException(string("trace tag ") + optarg +
                                 string(" not available"));
       } else {
-        throw OptionException("trace tags not available in non-tracing build");
+        throw OptionException("trace tags not available in non-tracing builds");
       }
       Trace.on(optarg);
       break;
 
     case 'd':
-      if(Configuration::isDebugBuild()) {
-        if(!Configuration::isDebugTag(optarg))
+      if(Configuration::isDebugBuild() && Configuration::isTracingBuild()) {
+        if(!Configuration::isDebugTag(optarg)) {
           throw OptionException(string("debug tag ") + optarg +
                                 string(" not available"));
+        }
+      } else if(! Configuration::isDebugBuild()) {
+        throw OptionException("debug tags not available in non-debug builds");
       } else {
-        throw OptionException("debug tags not available in non-debug build");
+        throw OptionException("debug tags not available in non-tracing builds");
       }
       Debug.on(optarg);
       Trace.on(optarg);
@@ -993,7 +996,7 @@ throw(OptionException) {
       break;
 
     case SHOW_DEBUG_TAGS:
-      if(Configuration::isDebugBuild()) {
+      if(Configuration::isDebugBuild() && Configuration::isTracingBuild()) {
         printf("available tags:");
         unsigned ntags = Configuration::getNumDebugTags();
         char const* const* tags = Configuration::getDebugTags();
@@ -1001,8 +1004,10 @@ throw(OptionException) {
           printf(" %s", tags[i]);
         }
         printf("\n");
+      } else if(! Configuration::isDebugBuild()) {
+        throw OptionException("debug tags not available in non-debug builds");
       } else {
-        throw OptionException("debug tags not available in non-debug build");
+        throw OptionException("debug tags not available in non-tracing builds");
       }
       exit(0);
       break;
@@ -1017,7 +1022,7 @@ throw(OptionException) {
         }
         printf("\n");
       } else {
-        throw OptionException("trace tags not available in non-tracing build");
+        throw OptionException("trace tags not available in non-tracing builds");
       }
       exit(0);
       break;
index 48a7d51fd7804f32f4a037250b74c775fc56f2fa..5acee360fbfa443c5efb74498b91f87fa54135d6 100644 (file)
@@ -45,7 +45,7 @@ DumpOutC DumpOutChannel CVC4_PUBLIC (&DumpOutC::dump_cout);
 
 #ifndef CVC4_MUZZLE
 
-#  ifdef CVC4_DEBUG
+#  if defined(CVC4_DEBUG) && defined(CVC4_TRACING)
 
 int DebugC::printf(const char* tag, const char* fmt, ...) {
   if(d_tags.find(string(tag)) == d_tags.end()) {
@@ -77,7 +77,7 @@ int DebugC::printf(std::string tag, const char* fmt, ...) {
   return retval;
 }
 
-#  endif /* CVC4_DEBUG */
+#  endif /* CVC4_DEBUG && CVC4_TRACING */
 
 int WarningC::printf(const char* fmt, ...) {
   // chop off output after 1024 bytes
index 308cfcac21ea7d7f7282b8df68546907f84b7ce6..602fb69cb98e923bef870745c5f254a516ea85e6 100644 (file)
@@ -430,13 +430,13 @@ inline int DumpOutC::printf(std::string tag, const char* fmt, ...) { return 0; }
 
 #else /* CVC4_MUZZLE */
 
-#  ifdef CVC4_DEBUG
+#  if defined(CVC4_DEBUG) && defined(CVC4_TRACING)
 #    define Debug ::CVC4::DebugChannel
-#  else /* CVC4_DEBUG */
+#  else /* CVC4_DEBUG && CVC4_TRACING */
 #    define Debug ::CVC4::__cvc4_true() ? ::CVC4::nullCvc4Stream : ::CVC4::DebugChannel
 inline int DebugC::printf(const char* tag, const char* fmt, ...) { return 0; }
 inline int DebugC::printf(std::string tag, const char* fmt, ...) { return 0; }
-#  endif /* CVC4_DEBUG */
+#  endif /* CVC4_DEBUG && CVC4_TRACING */
 #  define Warning (! ::CVC4::WarningChannel.isOn()) ? ::CVC4::nullCvc4Stream : ::CVC4::WarningChannel
 #  define WarningOnce (! ::CVC4::WarningChannel.isOn() || ! ::CVC4::WarningChannel.warnOnce(__FILE__,__LINE__)) ? ::CVC4::nullCvc4Stream : ::CVC4::WarningChannel
 #  define Message (! ::CVC4::MessageChannel.isOn()) ? ::CVC4::nullCvc4Stream : ::CVC4::MessageChannel
@@ -472,7 +472,7 @@ public:
   inline operator bool() { return true; }
 };/* __cvc4_true */
 
-#ifdef CVC4_DEBUG
+#if defined(CVC4_DEBUG) && defined(CVC4_TRACING)
 
 class CVC4_PUBLIC ScopedDebug {
   std::string d_tag;
@@ -509,7 +509,7 @@ public:
   }
 };/* class ScopedDebug */
 
-#else /* CVC4_DEBUG */
+#else /* CVC4_DEBUG && CVC4_TRACING */
 
 class CVC4_PUBLIC ScopedDebug {
 public:
@@ -517,7 +517,7 @@ public:
   ScopedDebug(const char* tag, bool newSetting = true) {}
 };/* class ScopedDebug */
 
-#endif /* CVC4_DEBUG */
+#endif /* CVC4_DEBUG && CVC4_TRACING */
 
 #ifdef CVC4_TRACING
 
@@ -579,13 +579,13 @@ public:
   inline ~IndentedScope();
 };/* class IndentedScope */
 
-#ifdef CVC4_DEBUG
+#if defined(CVC4_DEBUG) && defined(CVC4_TRACING)
 inline IndentedScope::IndentedScope(CVC4ostream out) : d_out(out) { d_out << push; }
 inline IndentedScope::~IndentedScope() { d_out << pop; }
-#else /* CVC4_DEBUG */
+#else /* CVC4_DEBUG && CVC4_TRACING */
 inline IndentedScope::IndentedScope(CVC4ostream out) {}
 inline IndentedScope::~IndentedScope() {}
-#endif /* CVC4_DEBUG */
+#endif /* CVC4_DEBUG && CVC4_TRACING */
 
 }/* CVC4 namespace */