You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ft...@apache.org on 2014/04/30 11:59:03 UTC
[14/15] git commit: [flex-sdk] [refs/heads/FDBWorkers] - FLEX-34291:
Merge the donated FDB with the current one.
FLEX-34291: Merge the donated FDB with the current one.
- Re-applied previous fixes
- Kept the legacy code to evaluate expressions, the new code based on Falcon classes will be created in the Falcon repository.
Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/379cb609
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/379cb609
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/379cb609
Branch: refs/heads/FDBWorkers
Commit: 379cb6098f2ffeb33b593a3ff5bacbc4856b65cf
Parents: dd6ef7e
Author: Fr�d�ric THMOAS <ft...@apache.org>
Authored: Wed Apr 30 10:41:54 2014 +0100
Committer: Fr�d�ric THMOAS <ft...@apache.org>
Committed: Wed Apr 30 10:41:54 2014 +0100
----------------------------------------------------------------------
.../debugger/DefaultDebuggerCallbacks.java | 55 +-
.../src/java/flash/tools/debugger/Frame.java | 50 +-
.../tools/debugger/IDebuggerCallbacks.java | 48 +-
.../java/flash/tools/debugger/ILauncher.java | 49 +
.../src/java/flash/tools/debugger/Isolate.java | 40 +
.../flash/tools/debugger/IsolateController.java | 184 +
.../flash/tools/debugger/IsolateSession.java | 177 +
.../src/java/flash/tools/debugger/Location.java | 31 +-
.../src/java/flash/tools/debugger/Session.java | 59 +-
.../src/java/flash/tools/debugger/SwfInfo.java | 5 +
.../src/java/flash/tools/debugger/Value.java | 56 +-
.../src/java/flash/tools/debugger/Variable.java | 49 +-
.../src/java/flash/tools/debugger/Watch.java | 31 +-
.../flash/tools/debugger/concrete/DIsolate.java | 49 +
.../tools/debugger/concrete/DLocation.java | 36 +-
.../flash/tools/debugger/concrete/DManager.java | 3321 +++--
.../flash/tools/debugger/concrete/DMessage.java | 93 +-
.../tools/debugger/concrete/DMessageCache.java | 26 +-
.../debugger/concrete/DMessageCounter.java | 133 +-
.../flash/tools/debugger/concrete/DModule.java | 37 +-
.../tools/debugger/concrete/DProtocol.java | 40 +-
.../debugger/concrete/DProtocolNotifierIF.java | 26 +-
.../tools/debugger/concrete/DStackContext.java | 48 +-
.../tools/debugger/concrete/DSuspendInfo.java | 26 +-
.../flash/tools/debugger/concrete/DSwfInfo.java | 42 +-
.../flash/tools/debugger/concrete/DValue.java | 92 +-
.../tools/debugger/concrete/DVariable.java | 59 +-
.../flash/tools/debugger/concrete/DWatch.java | 34 +-
.../debugger/concrete/IsolatePlayerSession.java | 221 +
.../tools/debugger/concrete/PlayerSession.java | 1262 +-
.../concrete/PlayerSessionIsolateStatus.java | 25 +
.../flash/tools/debugger/events/BreakEvent.java | 37 +-
.../debugger/events/ConsoleErrorFault.java | 29 +-
.../debugger/events/DivideByZeroFault.java | 31 +-
.../tools/debugger/events/ExceptionFault.java | 31 +-
.../flash/tools/debugger/events/FaultEvent.java | 43 +-
.../debugger/events/InvalidTargetFault.java | 29 +-
.../tools/debugger/events/InvalidURLFault.java | 29 +-
.../tools/debugger/events/InvalidWithFault.java | 31 +-
.../debugger/events/IsolateCreateEvent.java | 38 +
.../tools/debugger/events/IsolateExitEvent.java | 38 +
.../tools/debugger/events/ProtoLimitFault.java | 31 +-
.../debugger/events/RecursionLimitFault.java | 31 +-
.../debugger/events/ScriptTimeoutFault.java | 31 +-
.../debugger/events/StackUnderFlowFault.java | 31 +-
.../tools/debugger/expression/Context.java | 5 +
.../debugger/expression/DebuggerEvaluator.java | 10 +-
.../flash/tools/debugger/expression/ECMA.java | 119 +-
.../debugger/threadsafe/ThreadSafeFrame.java | 36 +-
.../debugger/threadsafe/ThreadSafeIsolate.java | 62 +
.../threadsafe/ThreadSafeIsolateSession.java | 285 +
.../debugger/threadsafe/ThreadSafeLocation.java | 33 +-
.../debugger/threadsafe/ThreadSafeSession.java | 96 +-
.../debugger/threadsafe/ThreadSafeSwfInfo.java | 33 +-
.../debugger/threadsafe/ThreadSafeValue.java | 35 +-
.../debugger/threadsafe/ThreadSafeVariable.java | 32 +-
.../debugger/threadsafe/ThreadSafeWatch.java | 33 +-
.../java/flex/tools/debugger/cli/DebugCLI.java | 12666 ++++++++---------
.../flex/tools/debugger/cli/DisplayAction.java | 34 +-
.../tools/debugger/cli/ExpressionCache.java | 34 +-
.../tools/debugger/cli/ExpressionContext.java | 87 +-
.../flex/tools/debugger/cli/Extensions.java | 66 +-
.../flex/tools/debugger/cli/FaultActions.java | 139 +-
.../flex/tools/debugger/cli/FileInfoCache.java | 137 +-
.../flex/tools/debugger/cli/VariableFacade.java | 43 +-
.../flex/tools/debugger/cli/fdb_da.properties | 35 +-
.../flex/tools/debugger/cli/fdb_de.properties | 37 +-
.../flex/tools/debugger/cli/fdb_en.properties | 45 +-
.../flex/tools/debugger/cli/fdb_es.properties | 35 +-
.../flex/tools/debugger/cli/fdb_fi.properties | 35 +-
.../flex/tools/debugger/cli/fdb_fr.properties | 45 +-
.../flex/tools/debugger/cli/fdb_it.properties | 35 +-
.../flex/tools/debugger/cli/fdb_ja.properties | 45 +-
.../flex/tools/debugger/cli/fdb_ko.properties | 35 +-
.../flex/tools/debugger/cli/fdb_nb.properties | 35 +-
.../flex/tools/debugger/cli/fdb_nl.properties | 35 +-
.../flex/tools/debugger/cli/fdb_pt.properties | 35 +-
.../flex/tools/debugger/cli/fdb_ru.properties | 35 +-
.../flex/tools/debugger/cli/fdb_sv.properties | 35 +-
.../tools/debugger/cli/fdb_zh_CN.properties | 45 +-
.../tools/debugger/cli/fdb_zh_TW.properties | 35 +-
.../java/flex/tools/debugger/cli/fdbhelp_br.txt | 805 +-
.../java/flex/tools/debugger/cli/fdbhelp_de.txt | 859 +-
.../java/flex/tools/debugger/cli/fdbhelp_dk.txt | 794 +-
.../java/flex/tools/debugger/cli/fdbhelp_en.txt | 19 +-
.../java/flex/tools/debugger/cli/fdbhelp_es.txt | 807 +-
.../java/flex/tools/debugger/cli/fdbhelp_fi.txt | 803 +-
.../java/flex/tools/debugger/cli/fdbhelp_fr.txt | 1397 +-
.../java/flex/tools/debugger/cli/fdbhelp_it.txt | 858 +-
.../java/flex/tools/debugger/cli/fdbhelp_ja.txt | 67 +-
.../flex/tools/debugger/cli/fdbhelp_ko_kr.txt | 810 +-
.../java/flex/tools/debugger/cli/fdbhelp_nl.txt | 2610 ++--
.../java/flex/tools/debugger/cli/fdbhelp_no.txt | 790 +-
.../java/flex/tools/debugger/cli/fdbhelp_ru.txt | 808 +-
.../java/flex/tools/debugger/cli/fdbhelp_se.txt | 792 +-
.../flex/tools/debugger/cli/fdbhelp_zh_cn.txt | 785 +-
.../flex/tools/debugger/cli/fdbhelp_zh_tw.txt | 738 +-
97 files changed, 13198 insertions(+), 21995 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/DefaultDebuggerCallbacks.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/DefaultDebuggerCallbacks.java b/modules/debugger/src/java/flash/tools/debugger/DefaultDebuggerCallbacks.java
index 87f3136..d94ae46 100644
--- a/modules/debugger/src/java/flash/tools/debugger/DefaultDebuggerCallbacks.java
+++ b/modules/debugger/src/java/flash/tools/debugger/DefaultDebuggerCallbacks.java
@@ -1,20 +1,18 @@
/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package flash.tools.debugger;
@@ -316,13 +314,36 @@ public class DefaultDebuggerCallbacks implements IDebuggerCallbacks
{
return Runtime.getRuntime().exec(cmd);
}
-
+
+ @Override
+ public Process launchDebugTarget(String[] cmd, ILauncher launcher) throws IOException {
+ return launcher.launch(cmd);
+ }
+
/*
* @see flash.tools.debugger.IDebuggerCallbacks#terminateDebugTarget(java.lang.Process)
*/
public void terminateDebugTarget(Process process) throws IOException
{
- process.destroy();
+ terminateDebugTarget(process, null);
+ }
+
+ @Override
+ public void terminateDebugTarget(Process process, ILauncher launcher) throws IOException {
+ if(null == launcher)
+ {
+ process.destroy();
+ }
+ else
+ {
+ launcher.terminate(process);
+ }
+
+ }
+
+ public String queryWindowsRegistry(String key, String value) throws IOException
+ {
+ return queryWindowsRegistry(key, value, 0);
}
/**
@@ -330,7 +351,7 @@ public class DefaultDebuggerCallbacks implements IDebuggerCallbacks
* calls. I had to do it this way because it is too hard, at this point,
* to add native code to the Flex code tree.
*/
- public String queryWindowsRegistry(String key, String value) throws IOException
+ public String queryWindowsRegistry(String key, String value, int registryBitMode) throws IOException
{
Process p = null;
String result = null;
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/Frame.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/Frame.java b/modules/debugger/src/java/flash/tools/debugger/Frame.java
index 127731ab..835c0d1 100644
--- a/modules/debugger/src/java/flash/tools/debugger/Frame.java
+++ b/modules/debugger/src/java/flash/tools/debugger/Frame.java
@@ -1,20 +1,18 @@
/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package flash.tools.debugger;
@@ -38,9 +36,9 @@ public interface Frame
/**
* 'this' variable for the frame. Will return null
* if no 'this' pointer available for the frame.
- * @throws NoResponseException
- * @throws NotSuspendedException
- * @throws NotConnectedException
+ * @throws flash.tools.debugger.NoResponseException
+ * @throws flash.tools.debugger.NotSuspendedException
+ * @throws flash.tools.debugger.NotConnectedException
*/
public Variable getThis(Session s) throws NoResponseException, NotSuspendedException, NotConnectedException;
@@ -48,9 +46,9 @@ public interface Frame
* Arguments that were passed into the function. An empty
* array is used to denote that no arguments were passed into
* this function scope.
- * @throws NoResponseException
- * @throws NotSuspendedException
- * @throws NotConnectedException
+ * @throws flash.tools.debugger.NoResponseException
+ * @throws flash.tools.debugger.NotSuspendedException
+ * @throws flash.tools.debugger.NotConnectedException
*/
public Variable[] getArguments(Session s) throws NoResponseException, NotSuspendedException, NotConnectedException;
@@ -58,9 +56,9 @@ public interface Frame
* Locals used within this function scope. An empty
* array is used to denote no locals are available
* within this function scope.
- * @throws NoResponseException
- * @throws NotSuspendedException
- * @throws NotConnectedException
+ * @throws flash.tools.debugger.NoResponseException
+ * @throws flash.tools.debugger.NotSuspendedException
+ * @throws flash.tools.debugger.NotConnectedException
*/
public Variable[] getLocals(Session s) throws NoResponseException, NotSuspendedException, NotConnectedException;
@@ -115,4 +113,10 @@ public interface Frame
* scope chain entries which were created via "with var".
*/
public Variable[] getScopeChain(Session s) throws NoResponseException, NotSuspendedException, NotConnectedException;
+
+ /**
+ * Returns the worker ID associated to this frame. This will return
+ * Isolate.DEFAULT_ID, that is, the main worker.
+ */
+ public int getIsolateId();
}
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/IDebuggerCallbacks.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/IDebuggerCallbacks.java b/modules/debugger/src/java/flash/tools/debugger/IDebuggerCallbacks.java
index e704814..4151d53 100644
--- a/modules/debugger/src/java/flash/tools/debugger/IDebuggerCallbacks.java
+++ b/modules/debugger/src/java/flash/tools/debugger/IDebuggerCallbacks.java
@@ -1,20 +1,18 @@
/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package flash.tools.debugger;
@@ -82,6 +80,18 @@ public interface IDebuggerCallbacks
* Terminates a debug target process.
*/
public void terminateDebugTarget(Process process) throws IOException;
+
+ /**
+ * Launches a debug target using the launcher instance<code>ILauncher.launch(cmd)</code>.
+ *
+ */
+ public Process launchDebugTarget(String[] cmd, ILauncher launcher) throws IOException;
+
+ /**
+ * Terminates a debug target process by invoking <code>ILauncher.terminate(process)</code>
+ */
+ public void terminateDebugTarget(Process process, ILauncher launcher) throws IOException;
+
/**
* Query the Windows registry.
@@ -96,13 +106,19 @@ public interface IDebuggerCallbacks
* value
* @return the value stored at the location, or null if key or value was not
* found
- * @throws IOException
+ * @throws java.io.IOException
* indicates the registry query failed -- warning, this can
* really happen! Some implementations of this function don't
* work on Windows 2000. So, this function should not be counted
* on too heavily -- you should have a backup plan.
*/
public String queryWindowsRegistry(String key, String value) throws IOException;
+
+ /**
+ * Same as queryWindowsRegistry, but allows specific access to the 32-bit
+ * or 64-bit part of the registry.
+ */
+ public String queryWindowsRegistry(String key, String value, int registryBitMode) throws IOException;
/**
* Returns the version number of an application. For example, Firefox 3.5.4
@@ -127,7 +143,7 @@ public interface IDebuggerCallbacks
* this function needs to be cross- platform, and the format of
* version information tends to vary widely from one platform to
* another.
- * @throws IOException
+ * @throws java.io.IOException
* e.g. for file not found, etc.
*/
public int[] getAppVersion(File application) throws IOException;
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/ILauncher.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/ILauncher.java b/modules/debugger/src/java/flash/tools/debugger/ILauncher.java
new file mode 100644
index 0000000..24b0623
--- /dev/null
+++ b/modules/debugger/src/java/flash/tools/debugger/ILauncher.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package flash.tools.debugger;
+
+import java.io.IOException;
+
+/**
+ * A ILauncher which handles the launching of the URI or the command.
+ *
+ * ILauncher is to provide more flexibility to handle the Player launch in different platforms.
+ *
+ * @author ugs
+ *
+ */
+public interface ILauncher {
+
+ /**
+ * Launches the debug target.
+ *
+ * @param cmd - Launch URL and other arguments
+ * @return A handle to the process.
+ *
+ * @throws java.io.IOException
+ */
+ public Process launch(String[] cmd) throws IOException;
+
+ /**
+ * Terminate the process started by launch method.
+ * @param process - process started by launch.
+ * @throws java.io.IOException
+ */
+ public void terminate(Process process) throws IOException;
+
+
+}
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/Isolate.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/Isolate.java b/modules/debugger/src/java/flash/tools/debugger/Isolate.java
new file mode 100644
index 0000000..982c2dd
--- /dev/null
+++ b/modules/debugger/src/java/flash/tools/debugger/Isolate.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package flash.tools.debugger;
+
+/**
+ * The Isolate object uniquely identifies a "Worker" in ActionScript.
+ * Workers are conceptually similar to Threads, but their implementation
+ * closely follows more that of a web worker than an actual OS Thread.
+ *
+ * By default there is a default isolate object with id DEFAULT_ID.
+ * @author anirudhs
+ *
+ */
+public interface Isolate {
+
+ public static final int DEFAULT_ID = 1;
+
+ /**
+ * Get the unique integer ID associated with the
+ * worker. This is Isolate.DEFAULT_ID for the
+ * primordial.
+ * @return unique integer ID
+ */
+ public int getId();
+
+}
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/IsolateController.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/IsolateController.java b/modules/debugger/src/java/flash/tools/debugger/IsolateController.java
new file mode 100644
index 0000000..ed09477
--- /dev/null
+++ b/modules/debugger/src/java/flash/tools/debugger/IsolateController.java
@@ -0,0 +1,184 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package flash.tools.debugger;
+
+import flash.tools.debugger.expression.PlayerFaultException;
+
+/**
+ * Worker specific debug session commands. These are a subset of Session that
+ * can be individually routed to a specific worker (including the main worker if
+ * the player does not support concurrency). This is implemented by
+ * PlayerSession and used by the getWorkerSession() api.
+ *
+ * @see flash.tools.debugger.IsolateSession,
+ * flash.tools.debugger.Session#getWorkerSession(int)
+ * @author anirudhs
+ *
+ */
+public interface IsolateController {
+
+ /**
+ * @see flash.tools.debugger.Session#resume()
+ */
+ public void resumeWorker(int isolateId) throws NotSuspendedException, NotConnectedException, NoResponseException;
+
+ /**
+ * @see flash.tools.debugger.Session#suspend()
+ */
+ public void suspendWorker(int isolateId) throws SuspendedException, NotConnectedException, NoResponseException;
+
+ /**
+ * @see flash.tools.debugger.Session#isSuspended()
+ */
+ public boolean isWorkerSuspended(int isolateId) throws NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#isSuspended()
+ */
+ public int suspendReasonWorker(int isolateId) throws NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#getFrames()
+ */
+ public Frame[] getFramesWorker(int isolateId) throws NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#stepInto()
+ */
+ public void stepIntoWorker(int isolateId) throws NotSuspendedException, NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#stepOut()
+ */
+ public void stepOutWorker(int isolateId) throws NotSuspendedException, NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#stepOver()
+ */
+ public void stepOverWorker(int isolateId) throws NotSuspendedException, NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#stepContinue()
+ */
+ public void stepContinueWorker(int isolateId) throws NotSuspendedException, NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#getSwfs()
+ */
+ public SwfInfo[] getSwfsWorker(int isolateId) throws NoResponseException;
+
+ /**
+ * @see flash.tools.debugger.Session#setBreakpoint(int, int)
+ */
+ public Location setBreakpointWorker(int fileId, int lineNum, int isolateId) throws NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#getWatchList()
+ */
+ public Watch[] getWatchListWorker(int isolateId) throws NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#getVariableList()
+ */
+ public Variable[] getVariableListWorker(int isolateId) throws NotSuspendedException, NoResponseException, NotConnectedException, VersionException;
+
+ /**
+ * @see flash.tools.debugger.Session#getValue(long)
+ */
+ public Value getValueWorker(long valueId, int isolateId) throws NotSuspendedException, NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#getGlobal(String)
+ */
+ public Value getGlobalWorker(String name, int isolateId) throws NotSuspendedException, NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#evalIs(Value, Value)
+ */
+ public boolean evalIsWorker(Value value, Value type, int isolateId) throws PlayerDebugException, PlayerFaultException;
+
+ /**
+ * @see flash.tools.debugger.Session#evalIs(Value, String)
+ */
+ public boolean evalIsWorker(Value value, String type, int isolateId) throws PlayerDebugException, PlayerFaultException;
+
+ /**
+ * @see flash.tools.debugger.Session#evalInstanceof(Value, Value)
+ */
+ public boolean evalInstanceofWorker(Value value, Value type, int isolateId) throws PlayerDebugException, PlayerFaultException;
+
+ /**
+ * @see flash.tools.debugger.Session#evalInstanceof(Value, String)
+ */
+ public boolean evalInstanceofWorker(Value value, String type, int isolateId) throws PlayerDebugException, PlayerFaultException;
+
+ /**
+ * @see flash.tools.debugger.Session#evalIn(Value, Value)
+ */
+ public boolean evalInWorker(Value property, Value object, int isolateId) throws PlayerDebugException, PlayerFaultException;
+
+ /**
+ * @see flash.tools.debugger.Session#evalAs(Value, Value)
+ */
+ public Value evalAsWorker(Value value, Value type, int isolateId) throws PlayerDebugException, PlayerFaultException;
+
+ /**
+ * @see flash.tools.debugger.Session#callFunction(Value, String, Value[])
+ */
+ public Value callFunctionWorker(Value thisObject, String functionName, Value[] args, int isolateId) throws PlayerDebugException;
+
+ /**
+ * @see flash.tools.debugger.Session#callConstructor(String, Value[])
+ */
+ public Value callConstructorWorker(String classname, Value[] args, int isolateId) throws PlayerDebugException;
+
+ /**
+ * @see flash.tools.debugger.Session#setExceptionBreakpoint(String)
+ */
+ public boolean setExceptionBreakpointWorker(String exceptionClass, int isolateId) throws NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#clearExceptionBreakpoint(String)
+ */
+ public boolean clearExceptionBreakpointWorker(String exceptionClass, int isolateId) throws NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#breakOnCaughtExceptions(boolean)
+ */
+ public void breakOnCaughtExceptions(boolean b, int isolateId) throws NotSupportedException, NoResponseException;
+
+ /**
+ * @see flash.tools.debugger.Session#supportsWatchpoints()
+ */
+ public boolean supportsWatchpoints(int isolateId);
+
+ /**
+ * @see flash.tools.debugger.Session#playerCanBreakOnAllExceptions()
+ */
+ public boolean playerCanBreakOnAllExceptions(int isolateId);
+
+ /**
+ * @see flash.tools.debugger.Session#supportsWideLineNumbers()
+ */
+ public boolean supportsWideLineNumbers(int isolateId);
+
+ /**
+ * @see flash.tools.debugger.Session#playerCanCallFunctions(String)
+ */
+ public boolean playerCanCallFunctions(int isolateId);
+
+}
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/IsolateSession.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/IsolateSession.java b/modules/debugger/src/java/flash/tools/debugger/IsolateSession.java
new file mode 100644
index 0000000..6b57d62
--- /dev/null
+++ b/modules/debugger/src/java/flash/tools/debugger/IsolateSession.java
@@ -0,0 +1,177 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package flash.tools.debugger;
+
+import flash.tools.debugger.expression.PlayerFaultException;
+
+/**
+ * Used to issue commands to a particular worker (isolate).
+ * @see Session
+ * @author anirudhs
+ */
+public interface IsolateSession {
+
+ /**
+ * @see flash.tools.debugger.Session#resume()
+ */
+ public void resume() throws NotSuspendedException, NotConnectedException, NoResponseException;
+
+ /**
+ * @see flash.tools.debugger.Session#suspend()
+ */
+ public void suspend() throws SuspendedException, NotConnectedException, NoResponseException;
+
+ /**
+ * @see flash.tools.debugger.Session#isSuspended()
+ */
+ public boolean isSuspended() throws NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#isSuspended()
+ */
+ public int suspendReason() throws NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#getFrames()
+ */
+ public Frame[] getFrames() throws NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#stepInto()
+ */
+ public void stepInto() throws NotSuspendedException, NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#stepOut()
+ */
+ public void stepOut() throws NotSuspendedException, NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#stepOver()
+ */
+ public void stepOver() throws NotSuspendedException, NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#stepContinue()
+ */
+ public void stepContinue() throws NotSuspendedException, NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#getSwfs()
+ */
+ public SwfInfo[] getSwfs() throws NoResponseException;
+
+ /**
+ * @see flash.tools.debugger.Session#setBreakpoint(int, int)
+ */
+ public Location setBreakpoint(int fileId, int lineNum) throws NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#getWatchList()
+ */
+ public Watch[] getWatchList() throws NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#getVariableList()
+ */
+ public Variable[] getVariableList() throws NotSuspendedException, NoResponseException, NotConnectedException, VersionException;
+
+ /**
+ * @see flash.tools.debugger.Session#getValue(long)
+ */
+ public Value getValue(long valueId) throws NotSuspendedException, NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#getGlobal(String)
+ */
+ public Value getGlobal(String name) throws NotSuspendedException, NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#evalIs(Value, Value)
+ */
+ public boolean evalIs(Value value, Value type) throws PlayerDebugException, PlayerFaultException;
+
+ /**
+ * @see flash.tools.debugger.Session#evalIs(Value, String)
+ */
+ public boolean evalIs(Value value, String type) throws PlayerDebugException, PlayerFaultException;
+
+ /**
+ * @see flash.tools.debugger.Session#evalInstanceof(Value, Value)
+ */
+ public boolean evalInstanceof(Value value, Value type) throws PlayerDebugException, PlayerFaultException;
+
+ /**
+ * @see flash.tools.debugger.Session#evalInstanceof(Value, String)
+ */
+ public boolean evalInstanceof(Value value, String type) throws PlayerDebugException, PlayerFaultException;
+
+ /**
+ * @see flash.tools.debugger.Session#evalIn(Value, Value)
+ */
+ public boolean evalIn(Value property, Value object) throws PlayerDebugException, PlayerFaultException;
+
+ /**
+ * @see flash.tools.debugger.Session#evalAs(Value, Value)
+ */
+ public Value evalAs(Value value, Value type) throws PlayerDebugException, PlayerFaultException;
+
+ /**
+ * @see flash.tools.debugger.Session#resume()
+ */
+ public Value callFunction(Value thisObject, String functionName, Value[] args) throws PlayerDebugException;
+
+ /**
+ * @see flash.tools.debugger.Session#callFunction(Value, String, Value[])
+ */
+ public Value callConstructor(String classname, Value[] args) throws PlayerDebugException;
+
+ /**
+ * @see flash.tools.debugger.Session#setExceptionBreakpoint(String)
+ */
+ public boolean setExceptionBreakpoint(String exceptionClass) throws NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#clearExceptionBreakpoint(String)
+ */
+ public boolean clearExceptionBreakpoint(String exceptionClass) throws NoResponseException, NotConnectedException;
+
+ /**
+ * @see flash.tools.debugger.Session#breakOnCaughtExceptions(boolean)
+ */
+ public void breakOnCaughtExceptions(boolean b) throws NotSupportedException, NoResponseException;
+
+ /**
+ * @see flash.tools.debugger.Session#supportsWatchpoints()
+ */
+ public boolean supportsWatchpoints();
+
+ /**
+ * @see flash.tools.debugger.Session#playerCanBreakOnAllExceptions()
+ */
+ public boolean playerCanBreakOnAllExceptions();
+
+ /**
+ * @see flash.tools.debugger.Session#supportsWideLineNumbers()
+ */
+ public boolean supportsWideLineNumbers();
+
+ /**
+ * @see flash.tools.debugger.Session#playerCanCallFunctions()
+ */
+ public boolean playerCanCallFunctions();
+}
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/Location.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/Location.java b/modules/debugger/src/java/flash/tools/debugger/Location.java
index 0c6c506..bf6103c 100644
--- a/modules/debugger/src/java/flash/tools/debugger/Location.java
+++ b/modules/debugger/src/java/flash/tools/debugger/Location.java
@@ -1,20 +1,18 @@
/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package flash.tools.debugger;
@@ -34,5 +32,10 @@ public interface Location
* Line number within the source for this location
*/
public int getLine();
+
+ /**
+ * Worker to which this location belongs.
+ */
+ public int getIsolateId();
}
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/Session.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/Session.java b/modules/debugger/src/java/flash/tools/debugger/Session.java
index 6a3df50..e341990 100644
--- a/modules/debugger/src/java/flash/tools/debugger/Session.java
+++ b/modules/debugger/src/java/flash/tools/debugger/Session.java
@@ -346,7 +346,7 @@ public interface Session
* to the end of the list.
*
* @param v the variable, upon whose member, the watch is to be placed.
- * @param varName is the mmeber name upon which the watch
+ * @param memberName is the mmeber name upon which the watch
* should be placed. This variable name may NOT contain the dot ('.')
* character and MUST be a member of v.
* @param kind access type that will trigger the watchpoint to fire --
@@ -367,8 +367,6 @@ public interface Session
*
* @param watch
* the watch to enable or disable
- * @param enabled
- * whether to enable it or disable it
* @throws NotSupportedException
* @throws NotConnectedException
* @throws NoResponseException
@@ -548,4 +546,59 @@ public interface Session
* PREF_SOCKET_TIMEOUT and helps in detecting broken connections.
*/
public Exception getDisconnectCause();
+
+ /**
+ * Set an exception breakpoint. Returns true if succeeded.
+ * @param exceptionClass
+ * @return
+ * @throws NoResponseException
+ * @throws NotConnectedException
+ */
+ public boolean setExceptionBreakpoint(String exceptionClass) throws NoResponseException, NotConnectedException;
+
+ /**
+ * Clears an exception breakpoint. Returns true if succeeded.
+ * @param exceptionClass
+ * @return
+ * @throws NoResponseException
+ * @throws NotConnectedException
+ */
+ public boolean clearExceptionBreakpoint(String exceptionClass) throws NoResponseException, NotConnectedException;
+
+ // Concurrency begin
+
+ /**
+ * Returns whether the target player supports concurrency.
+ * @see #setActiveIsolate(Value)
+ */
+ public boolean supportsConcurrency();
+
+ /**
+ * Get an array of all workers that the debugger knows of.
+ */
+ public Isolate[] getWorkers();
+
+ /**
+ * Ask the player again for a list of all workers. Use this
+ * method with caution as it will also reset all state about
+ * workers that the debugger is aware of.
+ */
+ public Isolate[] refreshWorkers() throws NotSupportedException, NotSuspendedException, NoResponseException, NotConnectedException;
+
+ /**
+ * Return the worker specific session object that can be used
+ * to communicate with that worker.
+ */
+ public IsolateSession getWorkerSession(int isolateId);
+
+ /**
+ *
+ * Sets the ILauncher instance which is associated with this session.
+ * ILauncher instance is used to terminate the process at the end of the debugging session.
+ *
+ * @param launcher
+ * ILauncher instance used to launch & terminate the process.
+ */
+ public void setLauncher(ILauncher launcher);
+
}
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/SwfInfo.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/SwfInfo.java b/modules/debugger/src/java/flash/tools/debugger/SwfInfo.java
index 7858edf..b87b52e 100644
--- a/modules/debugger/src/java/flash/tools/debugger/SwfInfo.java
+++ b/modules/debugger/src/java/flash/tools/debugger/SwfInfo.java
@@ -104,4 +104,9 @@ public interface SwfInfo
* @since Version 2
*/
public boolean containsSource(SourceFile f);
+
+ /**
+ * Return the worker ID to which this SWF belongs.
+ */
+ public int getIsolateId();
}
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/Value.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/Value.java b/modules/debugger/src/java/flash/tools/debugger/Value.java
index 077e8a4..d849db7 100644
--- a/modules/debugger/src/java/flash/tools/debugger/Value.java
+++ b/modules/debugger/src/java/flash/tools/debugger/Value.java
@@ -1,20 +1,18 @@
/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package flash.tools.debugger;
@@ -32,6 +30,7 @@ public interface Value
* A special object representing ActionScript's "undefined" value.
*/
public static final Object UNDEFINED = new Object() {
+ @Override
public String toString() {
return "undefined"; //$NON-NLS-1$
}
@@ -119,7 +118,7 @@ public interface Value
* The class name of the value. This isn't actually very useful, and should
* probably go away; it had more relevant in ActionScript 2, when the return
* value from this function could have been any one of the strings returned
- * by {@link DVariable#classNameFor(long, boolean)}.
+ * by {@link flash.tools.debugger.concrete.DVariable#classNameFor(long, boolean)}.
*
* In the AS3 world, the only possible return values from this function are:
*
@@ -137,12 +136,12 @@ public interface Value
* regarding the variable. They are bitfields identified
* as VariableAttribute.xxx
*
- * @see VariableAttribute
+ * @see flash.tools.debugger.VariableAttribute
*/
public int getAttributes();
/**
- * @see VariableAttribute
+ * @see flash.tools.debugger.VariableAttribute
*/
public boolean isAttributeSet(int variableAttribute);
@@ -185,9 +184,9 @@ public interface Value
/**
* Returns all child members of this variable. Can only be called for
* variables of type Object or MovieClip.
- * @throws NotConnectedException
- * @throws NoResponseException
- * @throws NotSuspendedException
+ * @throws flash.tools.debugger.NotConnectedException
+ * @throws flash.tools.debugger.NoResponseException
+ * @throws flash.tools.debugger.NotSuspendedException
*/
public Variable[] getMembers(Session s) throws NotSuspendedException, NoResponseException, NotConnectedException;
@@ -197,9 +196,9 @@ public interface Value
* @param s the session
* @param name just a varname name, without its namespace (see <code>getName()</code>)
* @return the specified child member, or null if there is no such child.
- * @throws NotConnectedException
- * @throws NoResponseException
- * @throws NotSuspendedException
+ * @throws flash.tools.debugger.NotConnectedException
+ * @throws flash.tools.debugger.NoResponseException
+ * @throws flash.tools.debugger.NotSuspendedException
*/
public Variable getMemberNamed(Session s, String name) throws NotSuspendedException, NoResponseException, NotConnectedException;
@@ -207,9 +206,9 @@ public interface Value
* Returns the number of child members of this variable. If called for
* a variable which has a simple type such as integer or string,
* returns zero.
- * @throws NotConnectedException
- * @throws NoResponseException
- * @throws NotSuspendedException
+ * @throws flash.tools.debugger.NotConnectedException
+ * @throws flash.tools.debugger.NoResponseException
+ * @throws flash.tools.debugger.NotSuspendedException
*/
public int getMemberCount(Session s) throws NotSuspendedException, NoResponseException, NotConnectedException;
@@ -248,4 +247,9 @@ public interface Value
* @param name Variable name.
*/
public Variable[] getPrivateInheritedMemberNamed(String name);
+
+ /**
+ * Get the worker id of the isolate to which this value belongs.
+ */
+ public int getIsolateId();
}
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/Variable.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/Variable.java b/modules/debugger/src/java/flash/tools/debugger/Variable.java
index 02561e2..703dd6f 100644
--- a/modules/debugger/src/java/flash/tools/debugger/Variable.java
+++ b/modules/debugger/src/java/flash/tools/debugger/Variable.java
@@ -1,20 +1,18 @@
/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package flash.tools.debugger;
@@ -66,7 +64,7 @@ public interface Variable
* value can be compared directly to VariableAttribute.PUBLIC_SCOPE, etc.
* using "==".
*
- * @see VariableAttribute
+ * @see flash.tools.debugger.VariableAttribute
*/
public int getScope();
@@ -100,12 +98,12 @@ public interface Variable
* regarding the variable. They are bitfields identified
* as VariableAttribute.xxx
*
- * @see VariableAttribute
+ * @see flash.tools.debugger.VariableAttribute
*/
public int getAttributes();
/**
- * @see VariableAttribute
+ * @see flash.tools.debugger.VariableAttribute
*/
public boolean isAttributeSet(int variableAttribute);
@@ -136,11 +134,11 @@ public interface Variable
* invoked and the setter threw an exception. In that case, look at
* FaultEvent.information to see the error text of the exception
* that occurred.
- * @throws NoResponseException
+ * @throws flash.tools.debugger.NoResponseException
* if times out
- * @throws NotSuspendedException
+ * @throws flash.tools.debugger.NotSuspendedException
* if Player is running
- * @throws NotConnectedException
+ * @throws flash.tools.debugger.NotConnectedException
* if Player is disconnected from Session
*/
public FaultEvent setValue(Session s, int type, String value) throws NotSuspendedException, NoResponseException, NotConnectedException;
@@ -158,9 +156,14 @@ public interface Variable
* <p>
* Has no effect if <code>needsToInvokeGetter()</code> is false.
*
- * @throws NotSuspendedException
- * @throws NoResponseException
- * @throws NotConnectedException
+ * @throws flash.tools.debugger.NotSuspendedException
+ * @throws flash.tools.debugger.NoResponseException
+ * @throws flash.tools.debugger.NotConnectedException
*/
public void invokeGetter(Session s) throws NotSuspendedException, NoResponseException, NotConnectedException;
+
+ /**
+ * Get the worker id of the isolate to which this value belongs.
+ */
+ public int getIsolateId();
}
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/Watch.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/Watch.java b/modules/debugger/src/java/flash/tools/debugger/Watch.java
index 99186ab..d8d9aef 100644
--- a/modules/debugger/src/java/flash/tools/debugger/Watch.java
+++ b/modules/debugger/src/java/flash/tools/debugger/Watch.java
@@ -1,20 +1,18 @@
/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package flash.tools.debugger;
@@ -46,4 +44,9 @@ public interface Watch
* The kind of watch placed on the variable being watched.
*/
public int getKind();
+
+ /**
+ * The isolate to which this watchpoint belongs.
+ */
+ public int getIsolateId();
}
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/concrete/DIsolate.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/concrete/DIsolate.java b/modules/debugger/src/java/flash/tools/debugger/concrete/DIsolate.java
new file mode 100644
index 0000000..3a0b21b
--- /dev/null
+++ b/modules/debugger/src/java/flash/tools/debugger/concrete/DIsolate.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package flash.tools.debugger.concrete;
+
+import flash.tools.debugger.Isolate;
+
+/**
+ * Concrete implementation of an Isolate.
+ * @author anirudhs
+ */
+public class DIsolate implements Isolate {
+
+ /** Isolate object behind the primordial or main thread (always exists) */
+ public static final DIsolate DEFAULT_ISOLATE = new DIsolate(Isolate.DEFAULT_ID);
+
+ private int id;
+
+ public DIsolate(int id) {
+ this.id = id;
+ }
+
+ /* (non-Javadoc)
+ * @see flash.tools.debugger.Isolate#getId()
+ */
+ @Override
+ public int getId() {
+ return id;
+ }
+
+ @Override
+ public String toString() {
+ return "Worker " + getId(); //$NON-NLS-1$
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/concrete/DLocation.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/concrete/DLocation.java b/modules/debugger/src/java/flash/tools/debugger/concrete/DLocation.java
index 39181eb..01c5ab3 100644
--- a/modules/debugger/src/java/flash/tools/debugger/concrete/DLocation.java
+++ b/modules/debugger/src/java/flash/tools/debugger/concrete/DLocation.java
@@ -1,20 +1,18 @@
/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package flash.tools.debugger.concrete;
@@ -26,13 +24,15 @@ public class DLocation implements Location
{
SourceFile m_source;
int m_line;
+ int m_isolateId;
boolean m_removed;
- DLocation(SourceFile src, int line)
+ DLocation(SourceFile src, int line, int isolateId)
{
m_source = src;
m_line = line;
m_removed = false;
+ m_isolateId = isolateId;
}
/* getters/setters */
@@ -60,8 +60,14 @@ public class DLocation implements Location
}
/** for debugging */
+ @Override
public String toString()
{
return m_source.toString() + ":" + m_line; //$NON-NLS-1$
}
+
+ @Override
+ public int getIsolateId() {
+ return m_isolateId;
+ }
}