Return-Path: X-Original-To: apmail-flex-commits-archive@www.apache.org Delivered-To: apmail-flex-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 885EE1007D for ; Thu, 29 May 2014 16:02:46 +0000 (UTC) Received: (qmail 39020 invoked by uid 500); 29 May 2014 16:02:44 -0000 Delivered-To: apmail-flex-commits-archive@flex.apache.org Received: (qmail 38961 invoked by uid 500); 29 May 2014 16:02:44 -0000 Mailing-List: contact commits-help@flex.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@flex.apache.org Delivered-To: mailing list commits@flex.apache.org Received: (qmail 38095 invoked by uid 99); 29 May 2014 16:02:44 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 29 May 2014 16:02:44 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id C9D784FABF; Thu, 29 May 2014 16:02:43 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: fthomas@apache.org To: commits@flex.apache.org Date: Thu, 29 May 2014 16:02:56 -0000 Message-Id: <03ebcd3f8af34e2dbfabe6521fbc94bf@git.apache.org> In-Reply-To: <110f52e9156b41508d99c944d2473acc@git.apache.org> References: <110f52e9156b41508d99c944d2473acc@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [14/56] [abbrv] git commit: [flex-sdk] [refs/heads/develop] - 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/develop Commit: 379cb6098f2ffeb33b593a3ff5bacbc4856b65cf Parents: dd6ef7e Author: Fr�d�ric THMOAS Authored: Wed Apr 30 10:41:54 2014 +0100 Committer: Fr�d�ric THMOAS 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 instanceILauncher.launch(cmd). + * + */ + public Process launchDebugTarget(String[] cmd, ILauncher launcher) throws IOException; + + /** + * Terminates a debug target process by invoking ILauncher.terminate(process) + */ + 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 getName()) * @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 *

* Has no effect if needsToInvokeGetter() 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; + } }