diff -r 05aa67beb24d -r 3a649437adec org.chromium.debug.core/src/org/chromium/debug/core/model/VProjectWorkspaceBridge.java --- 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();