org.chromium.debug.core/src/org/chromium/debug/core/model/VProjectWorkspaceBridge.java
changeset 214 3a649437adec
parent 115 d367ed1b2991
child 276 f2f4a1259de8
--- a/org.chromium.debug.core/src/org/chromium/debug/core/model/VProjectWorkspaceBridge.java	Mon Mar 01 17:26:39 2010 -0800
+++ b/org.chromium.debug.core/src/org/chromium/debug/core/model/VProjectWorkspaceBridge.java	Tue Mar 02 14:35:28 2010 -0800
@@ -10,6 +10,8 @@
 import org.chromium.debug.core.util.ChromiumDebugPluginUtil;
 import org.chromium.sdk.Breakpoint;
 import org.chromium.sdk.CallFrame;
+import org.chromium.sdk.DebugContext;
+import org.chromium.sdk.ExceptionData;
 import org.chromium.sdk.JavascriptVm;
 import org.chromium.sdk.Script;
 import org.chromium.sdk.JavascriptVm.BreakpointCallback;
@@ -265,12 +267,25 @@
 
     public String getThreadLabel(JavascriptThread thread) {
       String url = thread.getDebugTarget().getJavascriptEmbedder().getThreadName();
-      return NLS.bind(Messages.JsThread_ThreadLabelFormat, (thread.isSuspended()
-          ? Messages.JsThread_ThreadLabelSuspended
-          : Messages.JsThread_ThreadLabelRunning), (url.length() > 0
+      return NLS.bind(Messages.JsThread_ThreadLabelFormat, getThreadStateLabel(thread), (url.length() > 0
           ? (" : " + url) : "")); //$NON-NLS-1$ //$NON-NLS-2$
     }
 
+    private String getThreadStateLabel(JavascriptThread thread) {
+      if (thread.isSuspended()) {
+        DebugContext context = thread.getDebugTarget().getDebugContext();
+        ExceptionData exceptionData = context.getExceptionData();
+        if (exceptionData != null) {
+          return NLS.bind(Messages.JsThread_ThreadLabelSuspendedExceptionFormat,
+              exceptionData.getExceptionMessage());
+        } else {
+          return Messages.JsThread_ThreadLabelSuspended;
+        }
+      } else {
+        return Messages.JsThread_ThreadLabelRunning;
+      }
+    }
+
     public String getStackFrameLabel(StackFrame stackFrame) throws DebugException {
       CallFrame callFrame = stackFrame.getCallFrame();
       String name = callFrame.getFunctionName();