You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/04/26 06:29:15 UTC
[23/63] [abbrv] [partial] git commit: [flex-falcon]
[refs/heads/develop] - move stuff to where I think Maven wants it
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/flex/tools/debugger/cli/fdbhelp_zh_CN.txt
----------------------------------------------------------------------
diff --git a/debugger/src/flex/tools/debugger/cli/fdbhelp_zh_CN.txt b/debugger/src/flex/tools/debugger/cli/fdbhelp_zh_CN.txt
deleted file mode 100644
index 647f8e5..0000000
--- a/debugger/src/flex/tools/debugger/cli/fdbhelp_zh_CN.txt
+++ /dev/null
@@ -1,1500 +0,0 @@
-
- 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.
-
-此文件包含 fdb 中“help”命令所显示的文本。
-
-
-
-它分为多个“主题”。例如,当 fdb 用户键入“help break”时,会显示
-
-下面的 [break] 主题。
-
-
-
-每个主题的第一行和最后一行应该为空白。
-
-在 fdb 中不会显示它们;在此处保留它们仅仅是为了使此文件更易读。
-
-
-
-应该将帮助文本的格式设置为在 80 个字符宽的控制台上显示时不换行。
-
-下面的行宽为 80 个字符宽。
-
-
-
---------------------------------------------------------------------------------
-
-
-
-[?]
-
-
-
-未定义的命令。只需执行“help”即可查看所有 fdb 命令的列表。
-
-
-
-[break]
-
-
-
-在指定行或函数处设置断点。
-
-示例:
-
- break 87
-
- 在当前文件的第 87 行处设置断点。
-
- break myapp.mxml:56
-
- 在 myapp.mxml 的第 56 行处设置断点。
-
- break #3:29
-
- 在文件 #3 的第 29 行处设置断点。
-
- break doThis
-
- 在当前文件中的函数 doThis() 处设置断点。
-
- break myapp.mxml:doThat
-
- 在文件 myapp.mxml 中的函数 doThat() 处设置断点。
-
- break #3:doOther
-
- 在文件 #3 中的函数 doOther() 处设置断点。
-
- break
-
- 在当前堆栈帧中的当前执行地址处设置断点。这有助于返回到
-
- 堆栈帧时中断。
-
-要查看文件名和编号,请执行“info sources”或“info files”。
-
-要查看函数名称,请执行“info functions”。
-
-可接受缩略文件名和函数名称(如果意义明确)。
-
-如果指定了行号,则在该行的代码开头处中断。
-
-如果指定了函数,则在该函数的代码开头处中断。
-
-有关更多断点控制,请参阅“commands”和“condition”。
-
-
-
-[bt]
-
-
-
-堆栈的向后跟踪。
-
-
-
-[catch]
-
-
-
-引发异常时终止。这仅会影响捕获的异常(即,将由“catch”块处理的异常)。
-
-未捕获的异常始终在调试器中保持终止。
-
-
-
-使用“delete”命令可删除捕获点。
-
-
-
-示例:
-
- catch *
-
- 引发任何异常时终止。
-
- catch ReferenceError
-
- 任何时候引发 ReferenceError 即会终止,不管是否已捕获。
-
-
-
-[cf]
-
-
-
-显示当前文件的名称和编号,或更改当前文件。
-
-示例:
-
- cf
-
- 显示当前文件的名称和编号。
-
- cf myapp.mxml
-
- 将当前文件更改为 myapp.mxml。
-
- cf #29
-
- 将当前文件更改为文件 #29。
-
-要查看文件名和编号,请执行“info sources”或“info files”。
-
-可接受缩略文件名(如果意义明确)。
-
-使用“list”列出文件同时会使该文件成为当前文件。
-
-
-
-[clear]
-
-
-
-在指定行或函数处清除断点。
-
-示例:
-
- clear 87
-
- 在当前文件的第 87 行处清除断点。
-
- clear myapp.mxml:56
-
- 在 myapp.mxml 的第 56 行处清除断点。
-
- clear #3:29
-
- 在文件 #3 的第 29 行处清除断点。
-
- clear doThis
-
- 在当前文件中的函数 doThis() 处清除断点。
-
- clear myapp.mxml:doThat
-
- 在文件 myapp.mxml 中的函数 doThat() 处清除断点。
-
- clear #3:doOther
-
- 在文件 #3 中的函数 doOther() 处清除断点。
-
- clear
-
- 清除当前文件中当前行的断点。
-
-要查看文件名和编号,请执行“info sources”或“info files”。
-
-要查看函数名称,请执行“info functions”。
-
-可接受缩略文件名和函数名称(如果意义明确)。
-
-如果指定了行号,则会清除该行中的所有断点。
-
-如果指定了函数,则会清除函数开头处的断点。
-
-
-
-[continue]
-
-
-
-在断点处停止后继续执行。
-
-此命令不使用任何参数。
-
-
-
-[condition]
-
-
-
-
-
-仅当 COND 为 true 时,指定要中断的断点编号 N。
-
-用法为“condition N COND”,其中 N 是一个整数,COND 是达到断点 N 时
-
-的求值表达式。
-
-
-
-[commands]
-
-
-
-设置遇到断点时要执行的命令。
-
-提供断点编号作为“commands”之后的参数。
-
-不使用任何参数,目标断点是设置的最后一个断点。
-
-命令本身接着在下一行上启动。
-
-在命令行中键入“end”表示结束该命令。
-
-提供“silent”作为第一行以使断点为静默;然后遇到它时不会显示任何输出
-
-(除了命令输出的内容之外)。
-
-示例:
-
- (fdb) 命令
-
- 遇到断点 1 时键入命令,一条命令占一行。
-
- 以只有“end”的行作为结束。
-
- >w
-
- >end
-
-
-
-[delete]
-
-
-
-删除一个或多个断点。
-
-示例:
-
- delete
-
- 删除所有断点。
-
- delete 2 5
-
- 删除断点 #2 和 #5。
-
-要查看断点编号,请执行“info breakpoints”。
-
-
-
-[directory]
-
-
-
-修改 fdb 搜索源文件的目录列表。
-
-
-
-示例:
-
-
-
- directory
-
- 将列表恢复为默认值,该默认值为将源文件编译成对象代码的目录,
-
- 后面跟着当前工作目录。
-
-
-
- directory C:\MySource (Windows)
-
- directory /MySource (Mac)
-
- 将指定目录添加到目录列表的开头,将在该列表中搜索源。例如,为
-
- 类 mypackage.MyClass 查找源时,调试器会查找
-
- C:\MySource\mypackage\MyClass.as 和
-
- C:\MySource\MyClass.as。
-
-
-
- directory C:\Dir1;C:\Dir2 (Windows -- 将 ';' 用作分隔符)
-
- directory /Dir1:/Dir2 (Mac -- 将 ':' 用作分隔符)
-
- 将若干个目录添加到目录列表的开头,将在该列表中搜索源。
-
-
-
-要查看当前列表,请执行“show directories”。
-
-
-
-[disable]
-
-
-
-禁用一个或多个断点或自动显示表达式。
-
-示例:
-
- disable
-
- disable breakpoints
-
- 禁用所有断点。
-
- disable 2 5
-
- disable breakpoints 2 5
-
- 禁用断点 #2 和 #5。
-
- disable display
-
- 禁用所有自动显示表达式。
-
- disable display 1 3
-
- 禁用自动显示表达式 #1 和 #3。
-
-要查看断点编号,请执行“info breakpoints”。
-
-要查看自动显示表达式编号,请执行“info display”。
-
-
-
-[disassemble]
-
-
-
-(仅 ActionScript 2;调试 ActionScript 3 时不支持)
-
-
-
-反汇编源代码的指定部分。
-
-默认为当前列表行。
-
-支持的参数与使用“list”命令支持的参数相同。示例:
-
- disassemble 87
-
- 反汇编当前文件中的第 87 行。
-
- disassemble 87 102
-
- 反汇编当前文件中的第 87 行到第 102 行。
-
- disassemble doThis
-
- 反汇编当前文件中的函数 doThis()。
-
-除如上使用简单行号之外,还可以使用另外方式指定行:
-
- myapp.mxml
-
- myapp.mxml 中的第 1 行。
-
- myapp.mxml:doThat
-
- myapp.mxml 中的函数 doThat() 的第一行。
-
- myapp.mxml:56
-
- myapp.mxml 中的第 56 行。
-
- #3
-
- 文件 #3 中的第 1 行。
-
- #3:doOther
-
- 在文件 #3 中函数 doOther() 开头处的行。
-
- #3:29
-
- 文件 #3 中的第 29 行。
-
-
-
-[display]
-
-
-
-将表达式添加到自动显示表达式列表。
-
-示例:
-
- display employee.name
-
- 将“employee.name”添加到自动显示表达式列表。
-
- 每次 fdb 停止时,将显示 employee.name 的值。
-
-此命令的参数与“print”的参数类似。
-
-要查看自动显示表达式及其编号的列表,请执行“info display”。
-
-
-
-[down]
-
-
-
-选中并输出由此命令调用的堆栈帧。
-
-后续的“info arguments”和“info locals”命令将显示选定帧的局部变量和参数。
-
-请参阅“up”和“frame”。
-
-
-
-[enable]
-
-
-
-启用一个或多个断点或自动显示表达式。
-
-示例:
-
- enable
-
- enable breakpoints
-
- 启用所有断点。
-
- enable 2 5
-
- enable breakpoints 2 5
-
- 启用断点 #2 和 #5。
-
- enable display
-
- 启用所有自动显示表达式。
-
- enable display 1 3
-
- 启用自动显示表达式 #1 和 #3。
-
-要查看断点编号,请执行“info breakpoints”。
-
-要查看自动显示表达式编号,请执行“info display”。
-
-
-
-[file]
-
-
-
-指定要调试的应用程序,而不启动它。
-
-示例:
-
- file http://www.mysite.com/myapp.mxml
-
- 指定要调试的 MXML 应用程序。
-
- file myapp.swf
-
- 指定当前目录中要调试的本地 SWF 文件。
-
- 这种情况下,当前目录中必须也有 myapp.swd(包含调试信息的文件)。
-
-此命令实际上不会引起应用程序启动;使用不带参数的“run”命令开始调试
-
-应用程序。
-
-不需要先使用“file <target>”然后使用“run”,只需将要调试的应用程序
-
-指定为“run”的参数即可:
-
- run http://mysite.com/myapp.mxml
-
- run myapp.swf
-
-也可以指定,在启动 fdb 时以命令行参数的方式调试应用程序:
-
- fdb http://www.mysite.com/myapp.mxml
-
- fdb myapp.swf
-
-这种情况下不需要使用“file”或“run”。
-
-如果使用“run”而未指定要调试的应用程序,则 fdb 将等待任何应用程序
-
-以连接到它。
-
-
-
-[finish]
-
-
-
-执行,直到当前函数返回为止。
-
-此命令不使用任何参数。
-
-
-
-[frame]
-
-
-
-选中并输出特定堆栈帧。
-
-此命令使用一个可选参数(一个帧编号)。
-
-如果未提供参数,则默认为返回到当前顶部帧(即,帧 0)。
-
-示例:
-
- frame 4
-
- frame
-
-后续的“info arguments”和“info locals”命令将显示选定帧的局部变量和参数。
-
-请参阅“up”、“down”和“bt”。
-
-
-
-[handle]
-
-
-
-指定 fdb 应如何处理 Flash Player 中的故障。
-
-示例:
-
- handle recursion_limit stop
-
- 发生 recursion_limit 故障时,会在 fdb 中显示消息并停止(就好像在断点处)。
-
- handle all print nostop
-
- 发生任何种类的故障时,都会在 fdb 中显示消息但不停止。
-
-第一个参数是故障名称或“all”。
-
-其它参数是应用到该故障的操作。
-
-要查看故障名称,请执行“info handle”。
-
-操作有 print/noprint 和 stop/nostop。
-
-“print”意味着发生此故障时输出一条消息。
-
-“stop”意味着发生此故障时重新进入调试器。包含“print”。
-
-
-
-[help]
-
-
-
-您是第一次使用 fdb 吗? 请执行“tutorial”获取基本信息。
-
-fdb 命令的列表:
-
-bt (bt) 输出所有堆栈帧的向后跟踪
-
-break (b) 在指定行或函数处设置断点
-
-catch (ca) 引发异常时终止
-
-cf (cf) 显示当前文件的名称和编号
-
-clear (cl) 在指定行或函数处清除断点
-
-condition (cond) 将条件表达式应用到断点或删除断点的条件表达式
-
-continue (c) 在断点处停止后继续执行
-
-commands (com) 设置遇到断点时要执行的命令
-
-delete (d) 删除断点或自动显示表达式
-
-directory (dir) 将目录添加到源文件的搜索路径
-
-disable (disab) 禁用断点或自动显示表达式
-
-disassemble (disas) 反汇编源行或函数
-
-display (disp) 添加自动显示表达式
-
-enable (e) 启用断点或自动显示表达式
-
-file (fil) 指定要调试的应用程序
-
-finish (f) 执行,直到当前函数返回为止
-
-handle (han) 指定如何处理故障
-
-help (h) 显示关于 fdb 命令的帮助
-
-home (ho) 设置终止执行的列表位置
-
-info (i) 显示关于正在调试的程序的信息
-
-kill (k) 停止正在调试的程序的执行
-
-list (l) 列出指定函数或行
-
-next (n) 单步执行程序
-
-print (p) 输出变量表达式的值
-
-pwd (pw) 输出工作目录
-
-quit (q) 退出 fdb
-
-run (r) 启动调试的程序
-
-set (se) 设置变量的值
-
-source (so) 从文件读取 fdb 命令
-
-step (s) 单步执行程序,直到遇到其它源行为止
-
-tutorial (t) 显示关于如何使用 fdb 的教程
-
-undisplay (u) 删除自动显示表达式
-
-viewswf (v) 为基于 swf 的文件列表设置或清除过滤器
-
-watch (wa) 在给定变量上添加观察点
-
-what (wh) 显示变量的上下文
-
-where (w) 与 bt 相同
-
-键入“help”并后跟命令名可查看完整文档。
-
-
-
-[home]
-
-
-
-设置终止执行的列表位置。
-
-
-
-[info]
-
-
-
-用于显示关于正在调试的程序事项的通用命令。
-
-“info”子命令的列表:
-
-info arguments (i a) 当前堆栈帧的参数变量
-
-info breakpoints (i b) 用户可设置的断点的状态
-
-info display (i d) 显示自动显示表达式列表
-
-info files (i f) 正在调试的目标和文件的名称
-
-info functions (i fu) 所有函数名称
-
-info handle (i h) 如何处理故障
-
-info locals (i l) 当前堆栈帧的局部变量
-
-info scopechain (i sc) 当前堆栈帧的作用域链
-
-info sources (i so) 程序中的源文件
-
-info stack (i s) 堆栈的向后跟踪
-
-info swfs (i sw) 此会话中的 swf 列表
-
-info targets(i t) 正在调试的应用程序
-
-info variables (i v) 所有全局和静态变量名称
-
-键入“help info”并后跟“info”子命令名可查看完整文档。
-
-
-
-[info arguments]
-
-
-
-显示当前堆栈帧的参数。
-
-
-
-[info breakpoints]
-
-
-
-显示所有断点和观察点的状态。
-
-Type 列指示以下各项之一:
-
- breakpoint - 正常断点
-
- watchpoint - 观察点
-
-Disp 列包含“keep”、“del”或“dis”之一以指示遇到它之后断点的处置。
-
-“dis”意味着将禁用断点,而“del”意味着将删除断点。
-
-“Address”列和“What”列分别指示地址和文件/行号。
-
-
-
-[info display]
-
-
-
-显示自动显示表达式及其编号的列表。
-
-
-
-[info files]
-
-
-
-显示正在调试的应用程序的文件名称和编号,包括源文件、framework 文件
-
-和自动生成的文件。
-
-示例:
-
- info files
-
- 按类别以字母顺序列出所有文件
-
- info files my
-
- info files my*
-
- 按字母顺序列出名称以“my”开头的所有文件。
-
- info files *.as
-
- 按字母顺序列出名称以“.as”结尾的所有文件。
-
- info files *foo*
-
- 按字母顺序列出名称包含“foo”的所有文件。
-
-会按 name#N 格式显示文件,其中 N 是文件编号。
-
-在许多命令中可以使用 #N 代替文件名。
-
-
-
-[info functions]
-
-
-
-显示函数名称。
-
-示例:
-
- info functions .
-
- 显示当前文件中的所有函数。
-
- info functions myapp.mxml
-
- 显示 myapp.mxml 中的所有函数。
-
- info functions #3
-
- 显示文件 #3 中的所有函数。
-
- info functions
-
- 显示所有文件中的所有函数。
-
-要查看文件名和编号,请执行“info sources”或“info files”。
-
-可接受缩略文件名(如果意义明确)。
-
-
-
-[info handle]
-
-
-
-显示在 Flash Player 中发生故障时 fdb 执行的操作。
-
-示例:
-
- info handle
-
- 显示 fdb 如何处理所有故障。
-
- info handle recursion_limit
-
- 显示 fdb 如何处理 recursion_limit 故障。
-
-
-
-[info locals]
-
-
-
-显示当前堆栈帧的局部变量。
-
-
-
-[info scopechain]
-
-
-
-显示当前堆栈帧的作用域链。作用域链是当 Flash Player 尝试解析符号
-
-名称时搜索的对象列表。
-
-
-
-[info sources]
-
-
-
-显示正在调试的应用程序的源文件的名称和编号。不包括 Framework 文件和
-
-自动生成的文件。
-
-会按 name#N 格式显示文件,其中 N 是文件编号。
-
-在许多命令中可以使用 #N 代替文件名。
-
-
-
-[info stack]
-
-
-
-堆栈的向后跟踪。
-
-
-
-[info swfs]
-
-
-
-显示对于调试会话为已知的 swf。有关如何基于 swf 名称过滤文件列表的
-
-详细信息,请参阅命令“viewswf”。
-
-
-
-[info targets]
-
-
-
-显示正在调试的应用程序的 URL(http: 或 file:)。
-
-
-
-[info variables]
-
-
-
-显示所有全局变量名称和值以及所有静态变量名称和值。
-
-
-
-[info ?]
-
-
-
-未定义的“info”命令。请尝试“help info”。
-
-
-
-[kill]
-
-
-
-停止正在调试的程序的执行。
-
-此命令不使用任何参数。
-
-
-
-[list]
-
-
-
-列出源文件中的代码行。
-
-示例:
-
- list
-
- 再列出当前文件中在先前列表之后或附近的 10 行。
-
- list -
-
- 列出当前文件中在先前列表之前的 10 行。
-
- list 87
-
- 列出当前文件中在第 87 行附近的 10 行。
-
- list 87 102
-
- 列出当前文件中的第 87 行到第 102 行。
-
-除如上使用简单行号之外,还可以使用另外七种方式指定行:
-
- doThis
-
- 当前文件中函数 doThis() 的第一行。
-
- myapp.mxml
-
- myapp.mxml 中的第 1 行。
-
- myapp.mxml:doThat
-
- myapp.mxml 中的函数 doThat() 的第一行。
-
- myapp.mxml:56
-
- myapp.mxml 中的第 56 行。
-
- #3
-
- 文件 #3 中的第 1 行。
-
- #3:doOther
-
- 在文件 #3 中函数 doOther() 开头处的行。
-
- #3:29
-
- 文件 #3 中的第 29 行。
-
-要查看文件名和编号,请执行“info sources”或“info files”。
-
-要查看函数名称,请执行“info functions”。
-
-可接受缩略文件名和函数名称(如果意义明确)。
-
-列出文件会使该文件成为当前文件。(请参阅“cf”命令。)
-
-
-
-[next]
-
-
-
-单步执行程序,通过子例程调用继续。
-
- next
-
- 单步执行一次。
-
- next 3
-
- 单步执行 3 次,或者直到程序由于其它原因而停止为止。
-
-只要不发生子例程调用,就像“step”命令一样;当发生子例程调用时,
-
-会将该调用视为一个指令。
-
-
-
-[print]
-
-
-
-输出变量或表达式的值。
-
-示例:
-
- print i
-
- 输出“i”的值。
-
- print employee.name
-
- 输出“employee.name”的值。
-
- print employee
-
- 输出“employee”对象的值。
-
- 这可能只会显示类似 [对象 10378] 的内容。
-
- print employee.
-
- 输出“employee”对象的所有属性的值。
-
- print *employee
-
- 输出“employee”对象的所有属性的值。
-
- 前缀 * 运算符是后缀 . 运算符的前缀替代项。
-
- print #10378.
-
- 输出对象 #10378 的所有属性的值。
-
-可访问变量是选定堆栈帧的词法环境的那些变量,加上作用域为全局或
-
-整个文件的所有变量。
-
-
-
-[pwd]
-
-
-
-输出当前工作目录。
-
-这是启动 fdb 的目录;无法在 fdb 内更改它。可以相对于此目录指定“run”和
-
-“source”的参数。
-
-此命令不使用任何参数。
-
-
-
-[quit]
-
-
-
-退出 fdb。
-
-此命令不使用任何参数。
-
-
-
-[run]
-
-
-
-启动调试会话。
-
-示例:
-
- run http://www.mysite.com/myapp.mxml
-
- 运行指定的 MXML 应用程序。
-
- run myapp.swf
-
- run mydir\myapp.swf
-
- run c:\mydir\myapp.swf
-
- 运行本地 SWF 文件 myapp.swf,可以相对于当前目录(请参阅“pwd”命令)
-
- 或通过使用绝对路径指定该文件。这些情况下,myapp.swd(包含调试
-
- 信息的文件)也必须与 myapp.swf 位于同一目录中。
-
- run
-
- 运行先前由“file”命令指定的应用程序。
-
- 如果未指定任何应用程序,则 fdb 将等待一个应用程序以连接到它,
-
- 且在等不到时将超时。
-
-“run”将在浏览器中或独立 Flash Player 中启动应用程序。
-
-只要应用程序一启动,它将打断 fdb 以便您设置断点等等。
-
-
-
-在 Macintosh 上,该命令唯一支持的形式是不使用任何参数的“run”。
-
-接着必须手动启动 Flash player。
-
-
-
-[set]
-
-
-
-设置变量或快捷变量的值。
-
-快捷变量是完全位于 fdb 内的变量;它们并非您的程序的组成部分。
-
-快捷变量的前缀为“$”,快捷变量可以是不与任何现有变量冲突的任何名称。
-
-例如,$myVar。
-
-快捷变量还可用于控制 fdb 的各个方面。
-
-
-
-以下快捷变量供 fdb 使用。
-
-$listsize - 对于“list”要显示的源行的数量
-
-$columnwrap - 在其上输出将换行的列编号
-
-$infostackshowthis - 若为 0,则在堆栈向后跟踪中不显示“this”
-
-$invokegetters - 若为 0,则禁止 fdb 启动 getter 函数
-
-$bpnum - 最后一个定义的断点编号
-
-$displayattributes - 若为 1,则“print var.”会显示“var”的成员的所有属性(例如,
-
- private、static)
-
-
-
-示例:
-
- set i = 3
-
- 将变量“i”设置为数字 3。
-
- set employee.name = "Susan"
-
- 将变量“employee.name”设置为字符串 "Susan"。
-
- set $myVar = 20
-
- 将快捷变量“$myVar”设置为数字 20。
-
-
-
-[show]
-
-
-
-用于显示关于 fdb 的状态的事项的通用命令。
-
-“show”子命令的列表:
-
-show break (sh b) 已暂停执行的位置和原因
-
-show directories (sh d) 用于搜索源文件的目录
-
-show files (sh f) 目标文件和路径
-
-show functions (sh fu) 函数行映射信息
-
-show locations (sh l) 断点位置
-
-show memory (sh m) 当前内存使用情况
-
-show net (sh n) Player 消息统计数据
-
-show properties (sh p) 属性值
-
-show uri (sh u) 此会话的 Player 的 URI
-
-show variable (sh v) 原始变量检索
-
-键入“help show”并后跟“show”子命令名可查看完整文档。
-
-
-
-[show break]
-
-
-
-显示程序终止所在的 SWF 内的偏移。
-
-
-
-[show directories]
-
-
-
-显示用于查找源文件的当前搜索目录。
-
-
-
-[show files]
-
-
-
-显示所有目标文件的路径和文件名。
-
-
-
-[show functions]
-
-
-
-显示函数到行号映射信息。
-
-示例:
-
- show functions .
-
- 显示当前文件中所有函数的映射信息。
-
- show functions myapp.mxml
-
- 显示 myapp.mxml 中所有函数的映射信息。
-
- show functions #3
-
- 显示文件 #3 中所有函数的映射信息。
-
- show functions
-
- 显示所有文件中所有函数的映射信息。
-
-要查看文件名和编号,请执行“info sources”或“info files”。
-
-可接受缩略文件名(如果意义明确)。
-
-
-
-[show locations]
-
-
-
-显示为每个断点设置的位置列表。
-
-
-
-[show memory]
-
-
-
-显示 Java VM 内存统计数据。
-
-
-
-[show net]
-
-
-
-显示关于已发送到 Flash Player 和已从 Flash Player 接收到的消息的信息。
-
-
-
-[show properties]
-
-
-
-显示在调试器内使用的快捷变量的列表。
-
-
-
-[show uri]
-
-
-
-显示 Player 已为此会话发送的 URI。
-
-
-
-[show variable]
-
-
-
-显示变量的成员的值。需要两个参数;第一个是数字变量标识符,第二个是
-
-变量上属性的名称。快捷变量 $invokegetters 用于确定是否将启动
-
-属性 getter(假定它存在)。
-
-示例:
-
- show variable 1 __proto__
-
-
-
-[show ?]
-
-
-
-未定义“的show”命令。请尝试“help show”。
-
-
-
-[source]
-
-
-
-从文件读取 fdb }令并g行它们。
-
- source mycommands.txt
-
- source mydir\mycommands.txt
-
- source c:\mydir\mycommands.txt
-
- 读取 mycommands.txt 并执行其中的 fdb 命令。
-
- 可以相对于当前目录(请参阅“pwd”命令)或通过使用绝对路径指定
-
- 包含命令的文件。
-
-启动 fdb 时,会使用此方式自动读取文件 .fdbinit。
-
-仅在当前目录中搜索 .fdbinit。这意味着您可以为不同的项目设置
-
-多个 .fdbinit 文件。
-
-
-
-[step]
-
-
-
-单步执行程序,直到遇到其它源行为止。
-
-示例:
-
- step
-
- 单步执行一次。
-
- step 3
-
- 单步执行 3 次,或者直到程序由于其它原因而停止为止。
-
-
-
-[tutorial]
-
-
-
-显示关于如何使用 fdb 的教程。
-
-此命令不使用任何参数。
-
-
-
-[Tutorial]
-
-
-
-典型的 fdb 会话:
-
-使用“run”启动应用程序。
-
-使用“info sources”查看文件名。
-
-使用“list”列出文件。
-
-使用“break”设置断点。
-
-使用“continue”执行程序,直到遇到断点为止。
-
-使用“where”、“print”、“info locals”检查程序的状态。
-
-使用“next”、“step”和“finish”执行各个语句。
-
-使用“continue”继续执行。
-
-使用“quit”退出 fdb。
-
-
-
-[undisplay]
-
-
-
-删除一个或多个自动显示表达式。
-
-示例:
-
- undisplay
-
- 删除所有自动显示表达式。
-
- undisplay 2 7
-
- 删除自动显示表达式 #2 和 #7。
-
-要查看自动显示表达式及其编号的列表,请执行“info display”。
-
-
-
-[up]
-
-
-
-选中并输出调用此命令的堆栈帧。
-
-后续的“info arguments”和“info locals”命令将显示选定帧的局部变量和参数。
-
-请参阅“down”和“frame”。
-
-
-
-[viewswf]
-
-
-
-为基于 swf 名称的文件列表(即,“info files”和“info sources”)设置或清除
-
-过滤器。不使用任何参数,将显示所有文件。如果在一个或多个 swf 中存在
-
-同一文件,则该列表将仅显示该文件的第一个实例。要访问该文件的其它实例,
-
-请使用文件的编号(例如,“list #192”),或将此命令与一个参数一起使用
-
-(如下所示)以显示来自某个特定 swf 的文件。使用单个参数
-
-(就像“info swfs”命令所显示的 swf 名称),在文件列表中将仅显示
-
-来自指定 swf 的文件。将不会显示来自其它 swf 的文件。此命令还会影响
-
-将文件视为参数的命令(例如,“break”)。示例:
-
- viewswf myApp.mxml.swf
-
- 将仅显示来自 myApp.mxml.swf 的文件。
-
- viewswf
-
- 将显示来自所有 swf 的所有文件。
-
-
-
-[watch]
-
-
-
-在给定变量上添加观察点。当变量的值改变时,调试器将终止执行。
-
-示例:
-
- watch foo
-
-
-
-[what]
-
-
-
-显示解析变量的上下文。
-
-
-
-[where]
-
-
-
-堆栈的向后跟踪。
-
-
-
-[zzz]
-
-
-
-((( 将此未使用的主题保留在文件末尾 )))
-
-((( 以便正确分析倒数第二个主题。)))
-
-
-
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/flex/tools/debugger/cli/fdbhelp_zh_TW.txt
----------------------------------------------------------------------
diff --git a/debugger/src/flex/tools/debugger/cli/fdbhelp_zh_TW.txt b/debugger/src/flex/tools/debugger/cli/fdbhelp_zh_TW.txt
deleted file mode 100644
index 9faa9d6..0000000
--- a/debugger/src/flex/tools/debugger/cli/fdbhelp_zh_TW.txt
+++ /dev/null
@@ -1,1486 +0,0 @@
-
- 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.
-
-此檔案包含在 fdb 中使用「help」指令所顯示的文字。
-
-
-
-它會分成幾個「主題」。例如,當 fdb 使用者輸入「help break」時,下方的 [break] 主
-
-題就會顯示。
-
-
-
-每個主題的第一行和最後一行都應該保留空白。
-
-這兩行不會在 fdb 中顯示;在此處僅用於讓這個檔案更容易閱讀。
-
-
-
-說明文字顯示在 80 個字元寬的主控台時,不應該格式化為自動換行。
-
-以下行寬度為 80 個字元。
-
-
-
---------------------------------------------------------------------------------
-
-
-
-[?]
-
-
-
-未定義的指令。請僅執行「help」來查看所有 fdb 指令的清單。
-
-
-
-[break]
-
-
-
-將中斷點設定在指定的行或函數。
-
-範例:
-
- break 87
-
- 將中斷點設定在目前檔案的第 87 行。
-
- break myapp.mxml:56
-
- 將中斷點設定在 myapp.mxml 的第 56 行。
-
- break #3:29
-
- 將中斷點設定在檔案 #3 的第 29 行。
-
- break doThis
-
- 在中斷點設定在目前檔案的函數 doThis()。
-
- break myapp.mxml:doThat
-
- 將中斷點設定在檔案 myapp.mxml 的函數 doThat()。
-
- break #3:doOther
-
- 將中斷點設定在檔案 #3 的函數 doOther()。
-
- break
-
- 將中斷點設定在目前堆疊框架的目前執行位址。這有助於對返回到堆疊框架執行中斷
-
- 作業。
-
-若要查看檔案名稱和號碼,請執行「info sources」或「info files」。
-
-若要查看函數名稱,請執行「info functions」。
-
-採用縮寫形式的檔案名稱和函數名稱若都很明確,則可以接受。
-
-如果指定了行號,請在該行的程式碼的開頭處中斷。
-
-如果指定了函數,請在該函數的程式碼的開頭處中斷。
-
-請參閱「commands」和「condition」,以瞭解進一步的中斷點控制。
-
-
-
-[bt]
-
-
-
-堆疊的回溯追蹤。
-
-
-
-[catch]
-
-
-
-擲出例外狀況時中止。這只會影響捕捉到的例外狀況,即由「catch」區塊處理的例外狀況。
-
-在除錯程式中,未捕捉到的例外狀況一律會中止。
-
-
-
-使用「delete」指令來刪除捕捉點。
-
-
-
-範例:
-
- catch *
-
- 擲出任何的例外狀況時中止。
-
- catch ReferenceError
-
- 只要擲出 ReferenceError,無論是否到捕捉,均會中止。
-
-
-
-[cf]
-
-
-
-顯示目前檔案的名稱和號碼,或是變更目前的檔案。
-
-範例:
-
- cf
-
- 顯示目前檔案的名稱和號碼。
-
- cf myapp.mxml
-
- 將目前的檔案變更為 myapp.mxml。
-
- cf #29
-
- 將目前的檔案變更為檔案 #29。
-
-若要查看檔案名稱和號碼,請執行「info sources」或「info files」。
-
-採用縮寫形式的檔案名稱若都很明確,則可以接受。
-
-使用「list」列出檔案也會使該檔案成為目前的檔案。
-
-
-
-[clear]
-
-
-
-清除指定的行或函數的中斷點。
-
-範例:
-
- clear 87
-
- 清除目前檔案第 87 行的中斷點。
-
- clear myapp.mxml:56
-
- 清除 myapp.mxml 第 56 行的中斷點。
-
- clear #3:29
-
- 清除檔案 #3 第 29 行的中斷點。
-
- clear doThis
-
- 清除目前檔案中的函數 doThis() 的中斷點。
-
- clear myapp.mxml:doThat
-
- 清除檔案 myapp.mxml 的函數 doThat() 的中斷點。
-
- clear #3:doOther
-
- 清除檔案 #3 的函數 doOther() 的中斷點。
-
- clear
-
- 清除目前檔案中的目前行的中斷點。
-
-若要查看檔案名稱和號碼,請執行「info sources」或「info files」。
-
-若要查看函數名稱,請執行「info functions」。
-
-採用縮寫形式的檔案名稱和函數名稱若都很明確,則可以接受。
-
-如果指定了行號,會清除該行中的所有中斷點。
-
-如果指定了函數,會清除函數開頭處的中斷點。
-
-
-
-[continue]
-
-
-
-在中斷點處停止之後繼續執行。
-
-此指令不使用任何引數。
-
-
-
-[condition]
-
-
-
-
-
-僅在 COND 為 true 時,指定要中斷的中斷點號碼 N。
-
-用法為「condition N COND」,其中 N 是整數,COND 是每次到達中斷點 N 時所
-
-要求值的運算式。
-
-
-
-[commands]
-
-
-
-設定到達中斷點時所要執行的指令。
-
-提供中斷點號碼作為「commands」後面的引數。
-
-如果未使用引數,目標中斷點即上次所設定的中斷點。
-
-指令本身會跟在下一行開頭之後。
-
-輸入包含「end」的行來代表行的結尾。
-
-提供「silent」作為第一行,以使中斷點處於無訊息狀態;因此,到達中斷點時,除了
-
-指令所列印的內容,將不會列印輸出。
-
-範例:
-
- (fdb) 指令
-
- 輸入到達中斷點 1 時要使用的指令,一行一個指令。
-
- 使用僅包含「end」的行來結束。
-
- >w
-
- >end
-
-
-
-[delete]
-
-
-
-刪除一或多個中斷點。
-
-範例:
-
- delete
-
- 刪除所有中斷點。
-
- delete 2 5
-
- 刪除中斷點 #2 和 #5。
-
-若要查看中斷點號碼,請執行「info breakpoints」。
-
-
-
-[directory]
-
-
-
-修改 fdb 搜尋原始檔案所在目錄的清單。
-
-
-
-範例:
-
-
-
- directory
-
- 將清單還原成預設值,即原始檔案編譯成物件程式碼的目錄,後面跟隨目前的工作目錄。
-
-
-
- directory C:\MySource (Windows)
-
- directory /MySource (Mac)
-
- 將指定的目錄加入將搜尋其來源的目錄清單開頭。例如,尋找類別
-
- mypackage.MyClass 的來源時,除錯程式會同時尋找
-
- C:\MySource\mypackage\MyClass.as 和 C:\MySource\MyClass.as。
-
-
-
- directory C:\Dir1;C:\Dir2 (Windows -- 使用「;」作為分隔符號)
-
- directory /Dir1:/Dir2 (Mac -- 使用「:」作為分隔符號)
-
- 將數個目錄加入將搜尋其來源的目錄清單開頭。
-
-
-
-若要查看目前清單,請執行「show directories」。
-
-
-
-[disable]
-
-
-
-停用一或多個中斷點或自動顯示的運算式。
-
-範例:
-
- disable
-
- disable breakpoints
-
- 停用所有中斷點。
-
- disable 2 5
-
- disable breakpoints 2 5
-
- 停用中斷點 #2 和 #5。
-
- disable display
-
- 停用所有自動顯示的運算式。
-
- disable display 1 3
-
- 停用自動顯示的運算式 #1 和 #3。
-
-若要查看中斷點號碼,請執行「info breakpoints」。
-
-若要查看自動顯示的運算式號碼,請執行「info display」。
-
-
-
-[disassemble]
-
-
-
-(僅限 ActionScript 2;對 ActionScript 3 執行除錯時不支援)
-
-
-
-分解原始程式碼的指定部分。
-
-預設為目前的清單行。
-
-支援的引數與 list 指令相同。範例:
-
- disassemble 87
-
- 分解目前檔案中的第 87 行。
-
- disassemble 87 102
-
- 分解目前檔案中的第 87 到 102 行。
-
- disassemble doThis
-
- 分解目前檔案中的函數 doThis()。
-
-除了使用如上的簡單行號外,您還可以使用其他方式指定行:
-
- myapp.mxml
-
- myapp.mxml 中的第 1 行。
-
- myapp.mxml:doThat
-
- myapp.mxml 中的第一行函數 doThat()。
-
- myapp.mxml:56
-
- myapp.mxml 中的第 56 行。
-
- #3
-
- 檔案 #3 中的第 1 行。
-
- #3:doOther
-
- 檔案 #3 中函數 Other() 開始所在的行。
-
- #3:29
-
- 檔案 #3 中的第 29 行。
-
-
-
-[display]
-
-
-
-將運算式加入自動顯示的運算式清單。
-
-範例:
-
- display employee.name
-
- 將「employee.name」加入自動顯示的運算式清單。
-
- 每次 fdb 停止時,就會顯示 employee.name 的值。
-
-此指令的引數類似於「print」的引數。
-
-若要查看自動顯示的運算式及其號碼的清單,請執行「info display」。
-
-
-
-[down]
-
-
-
-選取並列印這一個項目所呼叫的堆疊框架。
-
-後續的「info arguments」和「info locals」指令將顯示所選框架的區域函數和引數。
-
-請參閱「up」和「frame」
-
-
-
-[enable]
-
-
-
-啟用一或多個中斷點或自動顯示的運算式。
-
-範例:
-
- enable
-
- enable breakpoints
-
- 啟用所有中斷點。
-
- enable 2 5
-
- enable breakpoints 2 5
-
- 啟用中斷點 #2 和 #5。
-
- enable display
-
- 啟用所有自動顯示的運算式。
-
- enable display 1 3
-
- 啟用自動顯示的運算式 #1 和 #3。
-
-若要查看中斷點號碼,請執行「info breakpoints」。
-
-若要查看自動顯示的運算式號碼,請執行「info display」。
-
-
-
-[file]
-
-
-
-指定要除錯的應用程式,但不啟動它。
-
-範例:
-
- file http://www.mysite.com/myapp.mxml
-
- 指定要除錯的 MXML 應用程式。
-
- file myapp.swf
-
- 指定要在目前目錄中除錯的本機 SWF 檔案。
-
- 在此情況下,myapp.swd (含有除錯資訊的檔案) 必須也存在於目前目錄中。
-
-此指令不會真的使應用程式啟動;請使用不含引數的「run」指令,來啟動對應用程式的
-
-除錯。
-
-代替使用「file <target>」後接著使用「run」,可以僅指定要除錯的應用程式做為「run」
-
-的引數:
-
- run http://mysite.com/myapp.mxml
-
- run myapp.swf
-
-您也可以在啟動 fdb 時,指定要除
-
- 錯的應用程式做為指令行引數:
-
- fdb http://www.mysite.com/myapp.mxml
-
- fdb myapp.swf
-
-在此情況下,您不需要使用
-
- 「file」或「run」。
-
-如果使用「run」時未指定要除錯的程式,fdb 將會等待任何應用程式與之連線。
-
-
-
-[finish]
-
-
-
-在目前的函數返回之前一直執行。
-
-此指令不使用任何引數。
-
-
-
-[frame]
-
-
-
-選取並列印特定的堆疊框架。
-
-此指令會使用可選引數,即框架號碼。
-
-如果未提供引數,預設為返回到目前的頂層框架 (即框架 0)。
-
-範例:
-
- frame 4
-
- frame
-
-後續的「info arguments」和「info locals」指令將顯示所選框架的區域函數和引數。
-
-請參閱「up」、「down」和「bt」
-
-
-
-[handle]
-
-
-
-指定 fdb 應該以何種方式處理 Flash Player 中的錯誤。
-
-範例:
-
- handle recursion_limit stop
-
- 發生 recursion_limit 錯誤時,在 fdb 中顯示訊息並停止,就像是在中斷點一樣。
-
- handle all print nostop
-
- 發生任何類型的錯誤時,在 fdb 中顯示訊息,但不停止。
-
-第一個引數是錯誤名稱或「all」。
-
-其他引數是套用至該錯誤的動作。
-
-若要查看錯誤名稱,請執行「info handle」。
-
-動作為 print/noprint 和 stop/nostop。
-
-「print」代表發生此錯誤時列印訊息。
-
-「stop」代表發生此錯誤時重新進入除錯程式。意謂「print」。
-
-
-
-[help]
-
-
-
-使用 fdb 的新手? 執行「tutorial」以取得基本資訊。
-
-fdb 指令清單:
-
-bt (bt) 列印所有堆疊框架的回溯追蹤
-
-break (b) 將中斷點設定在指定的行或函數
-
-catch (ca) 擲出例外狀況時中止
-
-cf (cf) 顯示目前檔案的名稱和號碼
-
-clear (cl) 清除指定的行或函數的中斷點
-
-condition (cond) 在中斷點套用/移除條件式運算式
-
-continue (c) 在中斷點處停止之後繼續執行
-
-commands (com) 設定到達中斷點時要執行的指令
-
-delete (d) 刪除中斷點或自動顯示的運算式
-
-directory (dir) 將目錄加入原始檔案的搜尋路徑
-
-disable (disab) 停用中斷點或自動顯示的運算式
-
-disassemble (disas) 分解來源行或函數
-
-display (disp) 加入自動顯示的運算式
-
-enable (e) 啟用中斷點或自動顯示的運算式
-
-file (fil) 指定要除錯的應用程式
-
-finish (f) 在目前的函數返回之前一直執行
-
-handle (han) 指定錯誤的處理方式
-
-help (h) 顯示有關 fdb 指令的說明
-
-home (ho) 將清單位置設定為執行的中止位置
-
-info (i) 顯示有關正在除錯之程式的資訊
-
-kill (k) 終止執行正在除錯的程式
-
-list (l) 列出指定函數或行
-
-next (n) 執行程式單步作業
-
-print (p) 列印變數 EXP 的值
-
-pwd (pw) 列印工作目錄
-
-quit (q) 結束 fdb
-
-run (r) 啟動已除錯的程式
-
-set (se) 設定變數的值
-
-source (so) 從檔案讀取 fdb 指令
-
-step (s) 執行程式單步作業,直到到達不同的來源行
-
-tutorial (t) 顯示如何使用 fdb 的教學課程
-
-undisplay (u) 移除自動顯示的運算式
-
-viewswf (v) 根據 swf 設定或清除檔案清單的過濾器
-
-watch (wa) 在指定變數上加入監視點
-
-what (wh) 顯示變數的上下文
-
-where (w) 與 bt 相同
-
-輸入「help」,後面跟隨指令名稱以取得完整文件。
-
-
-
-[home]
-
-
-
-將清單位置設定為執行的中止位置。
-
-
-
-[info]
-
-
-
-用於顯示正在除錯的程式相關資訊的一般指令。
-
-info 子指令的清單:
-
-info arguments (i a) 目前堆疊框架的引數變數
-
-info breakpoints (i b) 使用者可設定之中斷點的狀態
-
-info display (i d) 顯示自動顯示的運算式清單
-
-info files (i f) 正在除錯的目標和檔案名稱
-
-info functions (i fu) 所有函數名稱
-
-info handle (i h) 錯誤的處理方式
-
-info locals (i l) 目前堆疊框架的區域變數
-
-info scopechain (i sc) 目前堆疊框架的範圍鏈結
-
-info sources (i so) 程式中的原始檔案
-
-info stack (i s) 堆疊的回溯追蹤
-
-info swfs (i sw) 此工作階段中的 swf 清單
-
-info targets(i t) 正在除錯的應用程式
-
-info variables (i v) 所有全域和靜態變數名稱
-
-輸入「help info」,後面跟隨 info 子指令名稱以取得完整文件。
-
-
-
-[info arguments]
-
-
-
-顯示目前堆疊框架的引數。
-
-
-
-[info breakpoints]
-
-
-
-顯示所有中斷點和監視點的狀態。
-
-「類型」欄指示下列其中一項:
-
- breakpoint - 一般中斷點
-
- watchpoint - 監視點
-
-「處理」欄包含「keep」、
-
- 「del」或「dis」其中一項,用於指示到達中斷點後,對中斷點的處理方式。「dis」
-
- 代表將停用中斷點,「del」則代表將刪除中斷點。
-
-「Address」和「What」欄分別代表位址和檔案/行號。
-
-
-
-[info display]
-
-
-
-顯示自動顯示的運算式及其號碼的清單
-
-
-
-[info files]
-
-
-
-顯示正在除錯的應用程式檔案名稱和數目,包括原始檔案、架構檔案和自動產生的檔案。
-
-範例:
-
- info files
-
- 依類別字母順序列出所有檔案
-
- info files my
-
- info files my*
-
- 依字母順序列出其名稱以「my」開頭的所有檔案。
-
- info files *.as
-
- 依字母順序列出其名稱以「.as」結尾的所有檔案。
-
- info files *foo*
-
- 依字母順序列出其名稱含有「foo」的所有檔案。
-
-檔案會以 name#N 格式顯示,其中 N 為檔案號碼。
-
-在許多指令中,您都可以使用 #N 取代檔案名稱。
-
-
-
-[info functions]
-
-
-
-顯示函數名稱。
-
-範例:
-
- info functions .
-
- 顯示目前檔案中的所有函數。
-
- info functions myapp.mxml
-
- 顯示 myapp.mxml 中的所有函數。
-
- info functions #3
-
- 顯示檔案 #3 中的所有函數。
-
- info functions
-
- 顯示所有檔案中的全部函數。
-
-若要查看檔案名稱和號碼,請執行「info sources」或「info files」。
-
-採用縮寫形式的檔案名稱若都很明確,則可以接受。
-
-
-
-[info handle]
-
-
-
-顯示 Flash Player 發生錯誤時,fdb 會執行的動作。
-
-範例:
-
- info handle
-
- 顯示 fdb 處理所有錯誤的方式。
-
- info handle recursion_limit
-
- 顯示 fdb 處理 recursion_limit 錯誤的方式。
-
-
-
-[info locals]
-
-
-
-顯示目前堆疊框架的區域變數。
-
-
-
-[info scopechain]
-
-
-
-顯示目前堆疊框架的範圍鏈結。範圍鏈結是 Flash Player 嘗試解決符號名稱時會搜尋的物
-
-件清單。
-
-
-
-[info sources]
-
-
-
-顯示正在除錯的應用程式原始檔案名稱和數目。架構檔案和自動產生的檔案不包括在內。
-
-檔案會以 name#N 格式顯示,其中 N 為檔案號碼。
-
-在許多指令中,您都可以使用 #N 取代檔案名稱。
-
-
-
-[info stack]
-
-
-
-堆疊的回溯追蹤。
-
-
-
-[info swfs]
-
-
-
-顯示除錯工作階段已知的 swf。如需如何根據 swf 名稱過濾檔案清單的詳細資訊,請參閱
-
-指令「viewswf」。
-
-
-
-[info targets]
-
-
-
-顯示正在除錯的應用程式的 URL (http: 或 file:)。
-
-
-
-[info variables]
-
-
-
-顯示所有全域和靜態變數名稱和值。
-
-
-
-[info ?]
-
-
-
-未定義的 info 指令。請嘗試使用「help info」。
-
-
-
-[kill]
-
-
-
-終止執行正在除錯的程式。
-
-此指令不使用任何引數。
-
-
-
-[list]
-
-
-
-列出原始檔案中的多行程式碼。
-
-範例:
-
- list
-
- 列出目前檔案中上一個清單之後或前後的另外十行。
-
- list -
-
- 列出目前檔案中上一個清單之前的十行。
-
- list 87
-
- 列出目前檔案中第 87 行前後十行。
-
- list 87 102
-
- 列出目前檔案中的第 87 到 102 行。
-
-除了使用如上的簡單行號以外,您還可以使用 7 種方式指定行:
-
- doThis
-
- 目前檔案中的第 1 行函數 doThis()。
-
- myapp.mxml
-
- myapp.mxml 中的第 1 行。
-
- myapp.mxml:doThat
-
- myapp.mxml 中的第一行函數 doThat()。
-
- myapp.mxml:56
-
- myapp.mxml 中的第 56 行。
-
- #3
-
- 檔案 #3 中的第 1 行。
-
- #3:doOther
-
- 檔案 #3 中函數 Other() 開始所在的行。
-
- #3:29
-
- 檔案 #3 中的第 29 行。
-
-若要查看檔案名稱和號碼,請執行「info sources」或「info files」。
-
-若要查看函數名稱,請執行「info functions」。
-
-採用縮寫形式的檔案名稱和函數名稱若都很明確,則可以接受。
-
-列出某個檔案時,會使該檔案成為目前的檔案。(請參閱「cf」指令。)
-
-
-
-[next]
-
-
-
-執行程式單步作業,將繼續執行所有副常式呼叫。
-
- next
-
- 執行單步作業一次。
-
- next 3
-
- 執行單步作業 3 次,或直到程式因其他原因而停止。
-
-只要副常式呼叫不發生,就跟「step」指令相同;如果發生,會將呼叫視為一個指示。
-
-
-
-[print]
-
-
-
-列印變數或運算式的值。
-
-範例:
-
- print i
-
- 列印「i」的值。
-
- print employee.name
-
- 列印「employee.name」的值。
-
- print employee
-
- 列印「employee」物件的值。
-
- 這可能只會顯示類似 [Object 10378] 的內容。
-
- print employee.
-
- 列印「employee」物件的所有屬性值。
-
- print *employee
-
- 列印「employee」物件的所有屬性值。
-
- 前置 * 運算子是後置 . 運算子的前置替代項。
-
- print #10378.
-
- 列印物件 #10378 的所有屬性值。
-
-可存取的變數是所選堆疊框架的語彙環境變數,加上範圍為全域或整個檔案的所有變數。
-
-
-
-[pwd]
-
-
-
-列印目前的工作目錄。
-
-此為從其啟動 fdb 的目錄;在 fdb 中無法加以變更。可相對於此目錄指定「run」和
-
-「source」的引數。
-
-此指令不使用任何引數。
-
-
-
-[quit]
-
-
-
-結束 fdb。
-
-此指令不使用任何引數。
-
-
-
-[run]
-
-
-
-開始除錯工作階段。
-
-範例:
-
- run http://www.mysite.com/myapp.mxml
-
- 執行指定的 MXML 應用程式。
-
- run myapp.swf
-
- run mydir\myapp.swf
-
- run c:\mydir\myapp.swf
-
- 執行本機 SWF 檔案 myapp.swf,可相對於目前目錄 (請參閱「pwd」指令) 或使用絕對
-
- 路徑指定該檔案。在許多情況下,myapp.swd (含有除錯資訊的檔案) 必須也存在於與
-
- myapp.swf 相同的目錄中。
-
- run
-
- 執行之前使用「file」指令所指定的應用程式。
-
- 如果未指定任何應用程式,fdb 會等待應用程式與之連線,如果沒有應用程式與之連線,
-
- 將會逾時。
-
-「run」將會在瀏覽器或獨立 Flash Play 中啟動應用程式。
-
-應用程式一啟動,就會進入 fdb,讓您可以設定中斷點等。
-
-
-
-在 Macintosh 上,唯一支援的指令格式為不加引數的「run」。您必須接著手動啟動
-
-Flash player。
-
-
-
-[set]
-
-
-
-設定變數或便利變數的值。
-
-便利變數是完全存在於 fdb 中的變數;不屬於您程式的一部分。
-
-便利變數的開頭是「$」,可以是與任何現有變數不衝突的任何名稱。例如,$myVar。便
-
-利變數也可用於控制 fdb 的各個層面。
-
-
-
-fdb 使用下列便利變數。
-
-$listsize - 「list」顯示的來源行數
-
-$columnwrap - 輸出將自動換行的欄號
-
-$infostackshowthis - 若為 0,在堆疊回溯追蹤中將不顯示「this」
-
-$invokegetters - 若為 0,將阻止 fdb 啟動 getter 函數
-
-$bpnum - 最後一個已定義的中斷點號碼
-
-$displayattributes - 若為 1,「print var.」會顯示「var」成員的所有屬性 (如
-
- private、static)
-
-
-
-範例:
-
- set i = 3
-
- 將變數「i」設定為數字 3。
-
- set employee.name = "Susan"
-
- 將變數「employee.name」設定為字串「Susan」。
-
- set $myVar = 20
-
- 將便利變數「$myVar」設定為數字 20
-
-
-
-[show]
-
-
-
-用於顯示 fdb 狀態相關資訊的一般指令。
-
-show 子指令的清單:
-
-show break (sh b) 暫停的執行位置及原因
-
-show directories (sh d) 要搜尋原始檔案的目錄
-
-show files (sh f) 目標檔案和路徑
-
-show functions (sh fu) 函數行對應資訊
-
-show locations (sh l) 中斷點位置
-
-show memory (sh m) 目前的記憶體使用量
-
-show net (sh n) 播放程式訊息統計
-
-show properties (sh p) 屬性值
-
-show uri (sh u) 此工作階段的播放程式 URI
-
-show variable (sh v) 原始變數擷取
-
-輸入「help show」,後面接著 show 子指令名稱以取得完整文件。
-
-
-
-[show break]
-
-
-
-顯示 SWF 內程式中止位置的位移
-
-
-
-[show directories]
-
-
-
-顯示用於尋找原始檔案的目前搜尋路徑。
-
-
-
-[show files]
-
-
-
-顯示所有目標檔案的路徑和檔案名稱
-
-
-
-[show functions]
-
-
-
-顯示函數到行號的對應資訊。
-
-範例:
-
- show functions .
-
- 顯示目前檔案中所有函數的對應資訊。
-
- show functions myapp.mxml
-
- 顯示 myapp.mxml 中所有函數的對應資訊。
-
- show functions #3
-
- 顯示檔案 #3 中所有函數的對應資訊。
-
- show functions
-
- 顯示所有檔案中所有函數的對應資訊。
-
-若要查看檔案名稱和號碼,請執行「info sources」或「info files」。
-
-採用縮寫形式的檔案名稱若都很明確,則可以接受。
-
-
-
-[show locations]
-
-
-
-顯示針對每個中斷點所設定的位置清單。
-
-
-
-[show memory]
-
-
-
-顯示 Java VM 記憶體統計。
-
-
-
-[show net]
-
-
-
-顯示傳送至 Flash Player 及接收自 Flash Player 的訊息相關資訊。
-
-
-
-[show properties]
-
-
-
-顯示用於除錯程式中的便利變數清單
-
-
-
-[show uri]
-
-
-
-顯示播放程式針對此工作階段所傳送的 URI。
-
-
-
-[show variable]
-
-
-
-顯示變數成員的值。需要使用兩個參數;第一個是數值變數識別名稱,第二個是變數的屬性
-
-名稱。便利變數
-
-$invokegetters 用於決定屬性 getter (假定其存在時) 是否啟動。
-
-範例:
-
- show variable 1 __proto__
-
-
-
-[show ?]
-
-
-
-未定義的 show 指令。請嘗試使用「help show」。
-
-
-
-[source]
-
-
-
-從檔案讀取 fdb 指令,並加以執行。
-
- source mycommands.txt
-
- source mydir\mycommands.txt
-
- source c:\mydir\mycommands.txt
-
- 讀取 mycommands.txt 並在其中執行 fdb 指令。
-
- 您可以相對於目前目錄 (請參閱「pwd」指令) 或使用絕對路徑指定含有指令的檔案。
-
-啟動 fdb 時會自動以此方式讀取檔案 .fdbinit。
-
-僅會在目前的目錄中搜尋 .fdbinit。這意味著,您可以針對不同專案設定多個 .fdbinit 檔
-
-案。
-
-
-
-[step]
-
-
-
-執行程式單步作業,直到到達不同的來源行。
-
-範例:
-
- step
-
- 執行單步作業一次。
-
- step 3
-
- 執行單步作業 3 次,或直到程式因其他原因而停止。
-
-
-
-[tutorial]
-
-
-
-顯示如何使用 fdb 的教學課程。
-
-此指令不使用任何引數。
-
-
-
-[Tutorial]
-
-
-
-典型的 fdb 工作階段:
-
-使用「run」啟動應用程式。
-
-使用「info sources」檢視檔案名稱。
-
-使用「list」列出檔案。
-
-使用「break」設定中斷點。
-
-使用「continue」執行程式,直到到達中斷點為止。
-
-使用「where」、「print」或「info locals」檢查程式的狀態。
-
-使用「next」、「step」和「finish」執行個別陳述式。
-
-使用「continue」繼續執行。
-
-使用「quit」結束 fdb。
-
-
-
-[undisplay]
-
-
-
-移除一或多個自動顯示的運算式。
-
-範例:
-
- undisplay
-
- 移除所有自動顯示的運算式。
-
- undisplay 2 7
-
- 移除自動顯示的運算式 #2 和 #7。
-
-若要查看自動顯示的運算式及其號碼的清單,請執行「info display」。
-
-
-
-[up]
-
-
-
-選取並列印呼叫這一個項目的堆疊框架。
-
-後續的「info arguments」和「info locals」指令將顯示所選框架的區域函數和引數。
-
-請參閱「down」和「frame」
-
-
-
-[viewswf]
-
-
-
-根據 swf 名稱設定或清除檔案清單 (即「info files」和「info sources」) 的過濾器。
-
-若無任何參數,將會顯示所有檔案。如果一或多個 swf 中存在相同的檔案,清單只會顯示
-
-檔案的第一個實體。若要存取檔案的其它實體,請使用檔案號碼 (例如,「list #192」)
-
-或使用此指令搭配參數 (請參閱下文) 來顯示特定 swf 中的檔案。搭配單一參數,使用
-
-「info swfs」指令顯示 swf 名稱時,在檔案清單中只會顯示指定 swf 中的檔案。
-
-不會顯示其它 swf 中的檔案。此指令也會影響接受檔案作為參數 (例如,「break」) 的指
-
-令。例如:
-
- viewswf myApp.mxml.swf
-
- 將僅顯示 myApp.mxml.swf 中的檔案。
-
- viewswf
-
- 將顯示所有 swf 中的全部檔案。
-
-
-
-[watch]
-
-
-
-在指定變數上加入監視點。當變數值變更時,除錯程式將會中止執行。
-
-範例:
-
- watch foo
-
-
-
-[what]
-
-
-
-顯示解析變數所在的上下文。
-
-
-
-[where]
-
-
-
-堆疊的回溯追蹤。
-
-
-
-[zzz]
-
-
-
-((( 將這個未使用的主題保留在檔案結尾處 )))
-
-((( 以便倒數第二個主題能正確剖析。)))
-
-
-
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/main/java/flash/tools/ActionLocation.java
----------------------------------------------------------------------
diff --git a/debugger/src/main/java/flash/tools/ActionLocation.java b/debugger/src/main/java/flash/tools/ActionLocation.java
new file mode 100644
index 0000000..741644e
--- /dev/null
+++ b/debugger/src/main/java/flash/tools/ActionLocation.java
@@ -0,0 +1,53 @@
+/*
+ * 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;
+
+import flash.swf.types.ActionList;
+import flash.swf.actions.ConstantPool;
+import flash.swf.actions.DefineFunction;
+
+/**
+ * ActionLocation record. Used to contain
+ * information regarding a specific location
+ * within an action record.
+ *
+ * at and actions are typically guaranteed to
+ * be filled out. The others are optional.
+ * @see SwfActionContainer
+ */
+public class ActionLocation
+{
+ public ActionLocation() { init(-1, null, null, null, null); }
+ public ActionLocation(ActionLocation base) { init(base.at, base.actions, base.pool, base.className, base.function); }
+
+ void init(int p1, ActionList p2, ConstantPool p3, String p4, DefineFunction p5)
+ {
+ at = p1;
+ actions = p2;
+ pool = p3;
+ className = p4;
+ function = p5;
+ }
+
+ public int at = -1;
+ public ActionList actions;
+ public ConstantPool pool;
+ public String className;
+ public DefineFunction function;
+}
+
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/main/java/flash/tools/SwfActionContainer.java
----------------------------------------------------------------------
diff --git a/debugger/src/main/java/flash/tools/SwfActionContainer.java b/debugger/src/main/java/flash/tools/SwfActionContainer.java
new file mode 100644
index 0000000..40053be
--- /dev/null
+++ b/debugger/src/main/java/flash/tools/SwfActionContainer.java
@@ -0,0 +1,295 @@
+/*
+ * 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;
+
+import flash.swf.Action;
+import flash.swf.Header;
+import flash.swf.TagDecoder;
+import flash.swf.TagHandler;
+import flash.swf.Dictionary;
+import flash.swf.ActionConstants;
+import flash.swf.MovieMetaData;
+import flash.swf.tags.DefineButton;
+import flash.swf.tags.DoAction;
+import flash.swf.tags.DoInitAction;
+import flash.swf.tags.PlaceObject;
+import flash.swf.tags.DefineSprite;
+import flash.swf.types.ActionList;
+import flash.swf.types.ButtonCondAction;
+import flash.swf.types.ClipActionRecord;
+import flash.swf.actions.DefineFunction;
+import flash.swf.actions.ConstantPool;
+import flash.util.Trace;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Iterator;
+
+/**
+ * This class implements the TagHandler interface
+ * and provides a mechanism for containing the
+ * actions associated with a SWF.
+ */
+public class SwfActionContainer extends TagHandler
+{
+ boolean errorProcessing = true;
+ ActionList m_master;
+
+ // temporaries used while decoding
+ Dictionary m_dictionary;
+ Header m_header;
+
+ public SwfActionContainer(byte[] swf, byte[] swd) { this(new ByteArrayInputStream(swf), new ByteArrayInputStream(swd)); }
+ public SwfActionContainer(InputStream swfIn) { this(swfIn, null); }
+
+ public SwfActionContainer(InputStream swfIn, InputStream swdIn)
+ {
+ TagDecoder p = new TagDecoder(swfIn, swdIn);
+ try
+ {
+ process(p);
+ errorProcessing = false;
+ }
+ catch(IOException io)
+ {
+ if (Trace.error)
+ io.printStackTrace();
+ }
+ }
+
+ // getters
+ public ActionList getMasterList() { return m_master; }
+ public Header getHeader() { return m_header; }
+ public Dictionary getDictionary() { return m_dictionary; }
+
+ // Did we hit an error in processing the swf?
+ public boolean hasErrors() { return errorProcessing; }
+
+ /**
+ * Ask a TagDecoder to do its magic, calling us
+ * upon each encounter of a new tag.
+ */
+ void process(TagDecoder d) throws IOException
+ {
+ m_master = new ActionList(true);
+ d.setKeepOffsets(true);
+ d.parse(this);
+ }
+
+ /**
+ * Return a path to an ActionList that contains the given offset
+ * if an exact match is not found then return the largest
+ * that does not exceed offset.
+ */
+ public ActionLocation locationLessOrEqualTo(int offset)
+ {
+ ActionLocation l = new ActionLocation();
+ locationLessOrEqualTo(l, m_master, offset);
+ return l;
+ }
+
+ public static ActionLocation locationLessOrEqualTo(ActionLocation location, ActionList list, int offset)
+ {
+ int at = findLessOrEqualTo(list, offset);
+ if (at > -1)
+ {
+ // we hit so mark it and extract a constant pool if any
+ location.at = at;
+ location.actions = list;
+
+ Action a = list.getAction(0);
+ if (a.code == ActionConstants.sactionConstantPool)
+ location.pool = (ConstantPool)a;
+
+ // then see if we need to traverse
+ a = list.getAction(at);
+ if ( (a.code == ActionConstants.sactionDefineFunction) ||
+ (a.code == ActionConstants.sactionDefineFunction2) )
+ {
+ location.function = (DefineFunction)a;
+ locationLessOrEqualTo(location, ((DefineFunction)a).actionList, offset);
+ }
+ else if (a instanceof DummyAction)
+ {
+ // our dummy container, then we drop in
+ locationLessOrEqualTo(location, ((DummyAction)a).getActionList(), offset);
+ }
+ }
+ return location;
+ }
+
+ // find the index of the largest offset in the list that does not
+ // exceed the offset value provided.
+ public static int findLessOrEqualTo(ActionList list, int offset)
+ {
+ int i = find(list, offset);
+ if (i < 0)
+ {
+ // means we didn't locate it, so get the next closest one
+ // which is 1 below the insertion point
+ i = (-i - 1) - 1;
+ }
+ return i;
+ }
+
+ // perform a binary search to locate the offset within the sorted
+ // list of offsets within the action list.
+ // if no match then (-i - 1) provides the index of where an insertion
+ // would occur for this offset in the list.
+ public static int find(ActionList list, int offset)
+ {
+ int lo = 0;
+ int hi = list.size()-1;
+
+ while (lo <= hi)
+ {
+ int i = (lo + hi)/2;
+ int m = list.getOffset(i);
+ if (offset > m)
+ lo = i + 1;
+ else if (offset < m)
+ hi = i - 1;
+ else
+ return i; // offset found
+ }
+ return -(lo + 1); // offset not found, low is the insertion point
+ }
+
+ /**
+ * Dummy Action container for housing all of our
+ * topmost level actionlists in a convenient form
+ */
+ public class DummyAction extends Action
+ {
+ public DummyAction(ActionList list)
+ {
+ super(ActionConstants.sactionNone);
+ m_actionList = list;
+ }
+
+ // getters/setters
+ public ActionList getActionList() { return m_actionList; }
+ public String getClassName() { return m_className; }
+ public void setClassName(String name) { m_className = name; }
+
+ private ActionList m_actionList;
+ private String m_className;
+ }
+
+ /**
+ * Store away the ActionLists for later retrieval
+ */
+ DummyAction recordActions(ActionList list)
+ {
+ DummyAction da = null;
+ if (list != null && list.size() > 0)
+ {
+ // use the first offset as our reference point
+ int offset = list.getOffset(0);
+
+ // now create a pseudo action for this action list in our master
+ da = new DummyAction(list);
+ m_master.setActionOffset(offset, da);
+ }
+ return da;
+ }
+
+ /**
+ * -----------------------------------------------
+ * The following APIs override TagHandler.
+ * -----------------------------------------------
+ */
+ @Override
+ public void doInitAction(DoInitAction tag)
+ {
+ DummyAction a = recordActions(tag.actionList);
+
+ // now fill in the class name if we can
+ if (m_header.version > 6 && tag.sprite != null)
+ {
+ String __Packages = MovieMetaData.idRef(tag.sprite, m_dictionary);
+ String className = (__Packages != null && __Packages.startsWith("__Packages")) ? __Packages.substring(11) : null; //$NON-NLS-1$
+ a.setClassName(className);
+ }
+ }
+
+ @Override
+ public void doAction(DoAction tag)
+ {
+ recordActions(tag.actionList);
+ }
+
+
+ @Override
+ public void defineSprite(DefineSprite tag)
+ {
+ // @todo need to support actions in sprites!!!
+ }
+
+ @Override
+ public void placeObject2(PlaceObject tag)
+ {
+ if (tag.hasClipAction())
+ {
+ Iterator it = tag.clipActions.clipActionRecords.iterator();
+ while (it.hasNext())
+ {
+ ClipActionRecord record = (ClipActionRecord) it.next();
+ recordActions(record.actionList);
+ }
+ }
+ }
+
+ @Override
+ public void defineButton(DefineButton tag)
+ {
+ recordActions(tag.condActions[0].actionList);
+ }
+
+ @Override
+ public void defineButton2(DefineButton tag)
+ {
+ if (tag.condActions.length > 0)
+ {
+ for (int i=0; i < tag.condActions.length; i++)
+ {
+ ButtonCondAction cond = tag.condActions[i];
+ recordActions(cond.actionList);
+ }
+ }
+ }
+
+ @Override
+ public void setDecoderDictionary(Dictionary dict)
+ {
+ m_dictionary = dict;
+ }
+
+ @Override
+ public void header(Header h)
+ {
+ m_header = h;
+ }
+
+ /**
+ * -----------------------------------------------
+ * END: override TagHandler.
+ * -----------------------------------------------
+ */
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/main/java/flash/tools/debugger/AIRLaunchInfo.java
----------------------------------------------------------------------
diff --git a/debugger/src/main/java/flash/tools/debugger/AIRLaunchInfo.java b/debugger/src/main/java/flash/tools/debugger/AIRLaunchInfo.java
new file mode 100644
index 0000000..36d139b
--- /dev/null
+++ b/debugger/src/main/java/flash/tools/debugger/AIRLaunchInfo.java
@@ -0,0 +1,123 @@
+/*
+ * 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.File;
+
+/**
+ * @author mmorearty
+ */
+public class AIRLaunchInfo
+{
+ /**
+ * Full path to the AIR Debug Launcher, <code>adl.exe</code> (Windows) or
+ * <code>adl</code> (Mac/Linux). This is mandatory.
+ */
+ public File airDebugLauncher;
+
+ /**
+ * The directory that has runtime.dll, or <code>null</code> to
+ * use the default.
+ */
+ public File airRuntimeDir;
+
+ /**
+ * The filename of the security policy to use, or <code>null</code> to
+ * use the default.
+ */
+ public File airSecurityPolicy;
+
+ /**
+ * The directory to specify as the application's content root, or
+ * <code>null</code> to not tell ADL where the content root is, in which
+ * case ADL will use the directory of the application.xml file as the
+ * content root.
+ */
+ public File applicationContentRootDir;
+
+ /**
+ * Array of command-line arguments for the user's program. These are
+ * specific to the user's program; they are not processed by AIR itself,
+ * just passed on to the user's app.
+ * <p>
+ * Note, this class has both <code>applicationArgumentsArray</code> and
+ * {@link #applicationArguments}. <code>applicationArgumentsArray</code>
+ * accepts an array of arguments, and passes them down as-is to the
+ * operating system. <code>applicationArguments</code> takes a single
+ * string, splits it into arguments, and passes the result to the operating
+ * system. You can use whichever one is more convenient for you; typically,
+ * one of these would be <code>null</code>. If both are non-
+ * <code>null</code>, then <code>applicationArgumentsArray</code> takes
+ * precedence, and <code>applicationArguments</code> is ignored.
+ */
+ public String[] applicationArgumentsArray;
+
+ /**
+ * Command-line arguments for the user's program. These are specific to the
+ * user's program; they are not processed by AIR itself, just passed on to
+ * the user's app.
+ * <p>
+ * Note, see the comment above on {@link #applicationArgumentsArray}.
+ */
+ public String applicationArguments;
+
+ /**
+ * The publisher ID to use; passed to adl's "-pubid" option. If
+ * null, no pubid is passed to adl.
+ */
+ public String airPublisherID;
+
+ /**
+ * The profile to pass to AIR 2.0's "-profile" argument, or null to omit
+ * the "-profile" argument.
+ */
+ public String profile;
+
+ /**
+ * The screensize argument to pass to AIR 2.0's "-screensize" option.
+ * A colon separated string indicating width and height of the screen
+ * in normal and fullscreen modes. Only relevant in the mobileDevice
+ * profile.
+ */
+ public String screenSize;
+
+ /**
+ * The dpi argument to pass to AIR 2.5's "-xscreenDPI" option.
+ * TODO: this is apparently only going to be used in 2.5
+ */
+ public int dpi;
+
+ /**
+ * The version platform argument to pass to AIR's "-XversionPlatform"
+ * option. This overrides the three characters in Capabilities.os only
+ * for the runtime in the AIR SDK.
+ */
+ public String versionPlatform;
+
+ /**
+ * Directory to load native extensions from. Corresponds to the
+ * -extdir argument of ADL.
+ */
+ public String extDir;
+
+ /**
+ * Directory to load native extensions from for devices. Corresponds to the
+ * -XdeviceExtDir argument of ADL.
+ */
+ public String deviceExtDir;
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/main/java/flash/tools/debugger/AlreadyActiveApplicationException.java
----------------------------------------------------------------------
diff --git a/debugger/src/main/java/flash/tools/debugger/AlreadyActiveApplicationException.java b/debugger/src/main/java/flash/tools/debugger/AlreadyActiveApplicationException.java
new file mode 100644
index 0000000..84432f6
--- /dev/null
+++ b/debugger/src/main/java/flash/tools/debugger/AlreadyActiveApplicationException.java
@@ -0,0 +1,47 @@
+/*
+ * 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;
+
+/**
+ * AlreadyActiveApplicationException is thrown when run/debug the application while there is
+ * an already running application.
+ * Exception is detected with ADL exit code 1 (Successful invocation of an already running AIR application. ADL exits immediately.)
+ *
+ * @author sakkus
+ */
+public class AlreadyActiveApplicationException extends IOException {
+ private static final long serialVersionUID = 0L;
+
+ private boolean m_isDebugging;
+
+ public AlreadyActiveApplicationException (String detailedMessage,boolean isDebugging)
+ {
+ super(detailedMessage);
+ m_isDebugging=isDebugging;
+ }
+
+ @Override
+ public String getMessage()
+ {
+ if(m_isDebugging) //DEBUGGING
+ return Bootstrap.getLocalizationManager().getLocalizedTextString("maybeAlreadyRunningForDebug"); //$NON-NLS-1$
+ else //RUNNING
+ return Bootstrap.getLocalizationManager().getLocalizedTextString("maybeAlreadyRunningForRun"); //$NON-NLS-1$
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/main/java/flash/tools/debugger/Bootstrap.java
----------------------------------------------------------------------
diff --git a/debugger/src/main/java/flash/tools/debugger/Bootstrap.java b/debugger/src/main/java/flash/tools/debugger/Bootstrap.java
new file mode 100644
index 0000000..ad0fea4
--- /dev/null
+++ b/debugger/src/main/java/flash/tools/debugger/Bootstrap.java
@@ -0,0 +1,53 @@
+/*
+ * 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.localization.LocalizationManager;
+import flash.tools.debugger.concrete.PlayerSessionManager;
+
+/**
+ * Entry point for access to the general API. A debugger uses this
+ * class to gain access to a SessionManager from which debugging
+ * sessions may be controlled or initiated.
+ */
+public class Bootstrap
+{
+ static SessionManager m_mgr = null;
+ private static LocalizationManager m_localizationManager;
+
+ static
+ {
+ // set up for localizing messages
+ m_localizationManager = new LocalizationManager();
+ m_localizationManager.addLocalizer( new DebuggerLocalizer("flash.tools.debugger.djapi.") ); //$NON-NLS-1$
+ }
+
+ private Bootstrap () {}
+
+ public static SessionManager sessionManager()
+ {
+ if (m_mgr == null)
+ m_mgr = new PlayerSessionManager();
+ return m_mgr;
+ }
+
+ static LocalizationManager getLocalizationManager()
+ {
+ return m_localizationManager;
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/main/java/flash/tools/debugger/Browser.java
----------------------------------------------------------------------
diff --git a/debugger/src/main/java/flash/tools/debugger/Browser.java b/debugger/src/main/java/flash/tools/debugger/Browser.java
new file mode 100644
index 0000000..7d64c02
--- /dev/null
+++ b/debugger/src/main/java/flash/tools/debugger/Browser.java
@@ -0,0 +1,82 @@
+/*
+ * 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.File;
+
+/**
+ * Describes a web browser.
+ *
+ * @author mmorearty
+ */
+public interface Browser
+{
+ /**
+ * Indicates an unknown browser type.
+ *
+ * @see #getType()
+ */
+ public static final int UNKNOWN = 0;
+
+ /**
+ * Indicates Internet Explorer.
+ *
+ * @see #getType()
+ */
+ public static final int INTERNET_EXPLORER = 1;
+
+ /**
+ * Indicates Netscape Navigator.
+ *
+ * @see #getType()
+ */
+ public static final int NETSCAPE_NAVIGATOR = 2;
+
+ /**
+ * Indicates Opera.
+ *
+ * @see #getType()
+ */
+ public static final int OPERA = 3;
+
+ /**
+ * Indicates the Mozilla browser, but <i>not</i> Firefox.
+ *
+ * @see #getType()
+ */
+ public static final int MOZILLA = 4;
+
+ /**
+ * Indicates Firefox.
+ *
+ * @see #getType()
+ */
+ public static final int MOZILLA_FIREFOX = 5;
+
+ /**
+ * Returns what type of Player this is, e.g. <code>INTERNET_EXPLORER</code>, etc.
+ */
+ public int getType();
+
+ /**
+ * Returns the path to the web browser executable -- e.g. the path to
+ * IExplore.exe, Firefox.exe, etc. (Filenames are obviously
+ * platform-specific.)
+ */
+ public File getPath();
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/main/java/flash/tools/debugger/CommandLineException.java
----------------------------------------------------------------------
diff --git a/debugger/src/main/java/flash/tools/debugger/CommandLineException.java b/debugger/src/main/java/flash/tools/debugger/CommandLineException.java
new file mode 100644
index 0000000..247a92e
--- /dev/null
+++ b/debugger/src/main/java/flash/tools/debugger/CommandLineException.java
@@ -0,0 +1,79 @@
+/*
+ * 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;
+
+/**
+ * Represents an error that occurred while invoking a command-line
+ * program. Saves the text error message that was reported
+ * by the command-line program.
+ *
+ * @author mmorearty
+ */
+public class CommandLineException extends IOException
+{
+ private static final long serialVersionUID = -5696392627123516956L;
+
+ private String[] m_commandLine;
+ private String m_commandOutput;
+ private int m_exitValue;
+
+ /**
+ * @param detailMessage
+ * the detail message, e.g. "Program failed" or whatever
+ * @param commandLine
+ * the command and arguments that were executed, e.g.
+ * <code>{ "ls", "-l" }</code>
+ * @param commandOutput
+ * the text error message that was reported by the command-line
+ * program. It is common for this message to be more than one
+ * line.
+ * @param exitValue
+ * the exit value that was returned by the command-line program.
+ */
+ public CommandLineException(String detailMessage, String[] commandLine, String commandOutput, int exitValue)
+ {
+ super(detailMessage);
+
+ m_commandLine = commandLine;
+ m_commandOutput = commandOutput;
+ m_exitValue = exitValue;
+ }
+
+ public String[] getCommandLine()
+ {
+ return m_commandLine;
+ }
+
+ /**
+ * @return command line message, often multi-line, never <code>null</code>
+ */
+ public String getCommandOutput()
+ {
+ return m_commandOutput;
+ }
+
+ /**
+ * @return the exit value that was returned by the command-line program.
+ */
+ public int getExitValue()
+ {
+ return m_exitValue;
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/main/java/flash/tools/debugger/DebuggerLocalizer.java
----------------------------------------------------------------------
diff --git a/debugger/src/main/java/flash/tools/debugger/DebuggerLocalizer.java b/debugger/src/main/java/flash/tools/debugger/DebuggerLocalizer.java
new file mode 100644
index 0000000..b406a16
--- /dev/null
+++ b/debugger/src/main/java/flash/tools/debugger/DebuggerLocalizer.java
@@ -0,0 +1,102 @@
+/*
+ * 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.util.Locale;
+import java.util.Map;
+
+import flash.localization.ILocalizedText;
+import flash.localization.ILocalizer;
+import flash.localization.ResourceBundleLocalizer;
+
+/**
+ * An ILocalizer which does a couple of extra things:
+ *
+ * <ol>
+ * <li> If the requested string is not found, rather than returning <code>null</code>, we
+ * return a default string, to avoid a crash. </li>
+ * <li> We replace any "\n" with the current platform's newline sequence. </li>
+ * </ol>
+ *
+ * @author mmorearty
+ */
+public class DebuggerLocalizer implements ILocalizer
+{
+ private ResourceBundleLocalizer m_resourceBundleLocalizer = new ResourceBundleLocalizer();
+ private String m_prefix;
+ public final static String m_newline = System.getProperty("line.separator"); //$NON-NLS-1$
+
+ public DebuggerLocalizer(String prefix)
+ {
+ m_prefix = prefix;
+ }
+
+ public ILocalizedText getLocalizedText(Locale locale, final String id)
+ {
+ // We hard-code our package name in here, so that callers can use
+ // a short string
+ ILocalizedText localizedText = m_resourceBundleLocalizer.getLocalizedText(locale, m_prefix + id);
+
+ // If no ILocalizedText was found, try English
+ if (localizedText == null && !Locale.getDefault().getLanguage().equals("en")) //$NON-NLS-1$
+ {
+ localizedText = m_resourceBundleLocalizer.getLocalizedText(Locale.ENGLISH, m_prefix + id);
+ }
+
+ // If still no ILocalizedText was found, create a default one
+ if (localizedText == null)
+ {
+ localizedText = new ILocalizedText()
+ {
+ public String format(Map parameters)
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.append('!');
+ sb.append(id);
+ sb.append('!');
+ if (parameters != null && !parameters.isEmpty())
+ {
+ sb.append(' ');
+ sb.append(parameters.toString());
+ }
+ return sb.toString();
+ }
+ };
+ }
+
+ // If the current platform's newline sequence is something other
+ // than "\n", then replace all occurrences of "\n" with this platform's
+ // newline sequence.
+ if (m_newline.equals("\n")) //$NON-NLS-1$
+ {
+ return localizedText;
+ }
+ else
+ {
+ final ILocalizedText finalLocalizedText = localizedText;
+ return new ILocalizedText()
+ {
+ public String format(Map parameters)
+ {
+ String result = finalLocalizedText.format(parameters);
+ return result.replaceAll("\n", m_newline); //$NON-NLS-1$
+ }
+ };
+ }
+ }
+}