diff graal/com.oracle.max.graal.debug/src/com/oracle/max/graal/debug/Debug.java @ 4361:18b52fec79f1

Completed exception interception.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Fri, 20 Jan 2012 16:19:41 +0100
parents 719ac1d92a52
children 7462c3600c3a
line wrap: on
line diff
--- a/graal/com.oracle.max.graal.debug/src/com/oracle/max/graal/debug/Debug.java	Fri Jan 20 15:43:15 2012 +0100
+++ b/graal/com.oracle.max.graal.debug/src/com/oracle/max/graal/debug/Debug.java	Fri Jan 20 16:19:41 2012 +0100
@@ -25,7 +25,7 @@
 import com.oracle.max.graal.debug.internal.DebugScope;
 import com.oracle.max.graal.debug.internal.MetricImpl;
 import com.oracle.max.graal.debug.internal.TimerImpl;
-import java.util.Collections;
+import java.util.*;
 import java.util.concurrent.*;
 
 
@@ -97,6 +97,18 @@
         }
     }
 
+    public static List<Object> contextSnapshot() {
+        if (ENABLED) {
+            List<Object> result = new ArrayList<>();
+            for (Object o : context()) {
+                result.add(o);
+            }
+            return result;
+        } else {
+            return Collections.emptyList();
+        }
+    }
+
     public static DebugMetric metric(String name) {
         if (ENABLED && DebugScope.getInstance().isMeterEnabled()) {
             return new MetricImpl(name);
@@ -111,6 +123,36 @@
         }
     }
 
+    public static DebugConfig fixedConfix(final boolean isLogEnabled, final boolean isDumpEnabled, final boolean isMeterEnabled, final boolean isTimerEnabled) {
+        return new DebugConfig() {
+
+            @Override
+            public boolean isLogEnabled() {
+                return isLogEnabled;
+            }
+
+            @Override
+            public boolean isMeterEnabled() {
+                return isMeterEnabled;
+            }
+
+            @Override
+            public boolean isDumpEnabled() {
+                return isDumpEnabled;
+            }
+
+            @Override
+            public boolean isTimerEnabled() {
+                return isTimerEnabled;
+            }
+
+            @Override
+            public RuntimeException interceptException(RuntimeException e) {
+                return e;
+            }
+        };
+    }
+
     private static final DebugMetric VOID_METRIC = new DebugMetric() {
         public void increment() { }
         public void add(int value) { }