Description: Sun Studio 9 集成开发 环境自述文件
Keywords: 自述, 文档, 出版,

2004 年 5 月 26 日更新

### Sun[tm] Studio 9：集成开发环境 (IDE) 自述文件

> #### 目录

> 1. 简介
> 2. 关于 Sun Studio 9 IDE
> 3. 新特性和更改的特性
> 4. Supported Source Code Control Software
> 5. Sun Studio 9 软件的组件
> 6. 确保 IDE 在客户机/服务器安装过程中操作正常
> 7. 确保 IDE 能够找到核心平台
> 8. 确保 IDE 能够找到正确的 J2SE 技术
> 9. 启动 IDE
> 10. 问题和解决办法
> 11. 限制和不兼容

> #### A. 简介

> 本文档包含有关使用 Sun Studio 9 集成开发环境 (IDE) 的信息。

> 产品文档
> - Solaris 平台的发行说明：可以通过 Sun Studio 9 网站 `http://developers.sun.com/tools/cc/documentation/ss9_docs/release_notes.html` 获得此发行说明。发行说明中的信息会更新和扩展所有自述文件中的信息。
> - Linux 平台的发行说明：可以通过 Sun Studio 9 网站 `http://developers.sun.com/tools/cc/documentation/ss9_docs/release_notes.html` 获得此发行说明。发行说明中的信息会更新和扩展所有自述文件中的信息。
> - Sun Studio 9 文档：产品手册页、自述文件的 HTML 版本以及手册可以从 `/installation_directory/docs/index.html` 进行访问。Solaris 平台上的缺省安装目录是 `/opt/SUNWspro`。Linux 平台上的缺省安装目录是 `/opt/sun/sunstudio9`。
> - IDE 文档：Sun Studio 9 IDE 所有组件的联机帮助可从 IDE 中的 [帮助] 菜单进行访问。
> - 开发人员资源门户：有关技术文章、代码样例、文档和知识库，请参见开发人员门户，网址：`http://developers.sun.com/prodtech/cc`。

> #### B. 关于 Sun Studio 9 IDE

> Sun Studio 9 IDE 提供了用于创建、编辑、生成、调试和分析 C、C++ 或 Fortran 应用程序性能的模块。其中包括一组基本的 Java[tm] 语言支持模块，如果需要用于 JNI（Java[tm] 本地接口）开发，则可将这些模块激活。

> 此发行版的 IDE 适用于以下平台：

> - Solaris[tm] 操作系统：
>   - SPARC® Platform Edition，第 8、9 和 10 版
>   - x86 平台版本，第 8、9 和 10 版
> - Linux 操作系统：
>   - Sun[tm] Java Desktop System 2003
>   - SuSE Linux Enterprise Server 8
>   - RedHat Enterprise Linux 3

> #### C. 新特性和更改的特性

> 本节描述了 ILD 中的新增和更改的功能。

> Sun Studio 9 IDE 中增添或更改了下列功能。

> - ss_attach 功能，允许您在程序开始执行时捕获它，并附加 dbx 调试程序立即开始调试它，而不是在进程运行后附加调试程序。
> - 源编辑器中的“快速浏览”组合框，允许您导航到类方法、函数、#define 或源文件的其他元素。

> dbx 调试程序的新功能不适用于使用 gcc 或 g++ 编译器编译的程序，或在 Linux 平台上运行的程序。有关详细信息，请参见限制和不兼容性。

> 有关 Solaris 平台上其他 Sun Studio 9 组件的信息，参见《新增功能》手册，网址为 `http://docs.sun.com`。

> #### D. 支持的源代码控制软件

> Sun Studio 9 IDE 支持下列源代码控制软件：

> - CVS 1.11
> - ClearCase V2002 u2
> - PVCS 6.7.00

> #### C. Sun Studio 软件的组件

> Sun[tm] Studio 9 软件 由以下 2 个主要组件组成：

> - Sun Studio 组件，包括 IDE、编译器（只在 Solaris 平台上）、各种工具及核心平台
> - Java[tm] 2 平台，核心平台赖以运行的标准版 v 1.4.2_02 (J2SE) 技术

> IDE、编译器和工具在 Solaris 上的缺省安装目录为 `/opt/SUNWspro`，但可在安装过程中指定其他目录。IDE 和工具在 Linux 平台上的缺省安装目录为 `/opt/sun/sunstudio9`，但可在安装过程中指定其他目录。

> 核心平台在 Solaris 平台上的缺省安装目录为 `/opt/netbeans/3.5M`，但可在安装过程中指定其他目录。核心平台在 Linux 平台上的缺省安装目录为 `/opt/sun/netbeans/3.5M`，但可在安装过程中指定其他目录。

> 在 Solaris 平台上，2SE 1.4.2_02 技术的缺省安装目录为 `/usr/jdk/j2sdk1.4.2_02` 目录，但安装过程中可在 `/usr` 中指定其他目录。在 Linux 平台上，2SE 1.4.2_02 技术的缺省安装目录为 `/usr/java/j2sdk1.4.2_02` 目录，但安装过程中可在 `/usr` 中指定其他目录。

> IDE 是否能正常工作取决于 IDE 是否可以找到核心平台，以及核心平台是否能够找到 J2SE 技术。

> #### F. 确保 IDE 在客户机/服务器安装中正确操作

> 可将 Sun Studio 9 软件安装到服务器上。为确保从客户端系统启动 IDE 时，IDE 能够找到核心平台，如果未将包含 IDE 和核心平台的目录安装在客户端系统中，则必须从服务器进行安装。

> 为方便起见，应将 IDE 和核心平台安装在相同基目录中，因此可在客户机系统上对两者使用一个单一的安装点。

> 注意：如果客户端系统中的安装点为缺省安装目录，则可能会隐藏客户端系统中的其他软件的安装。在这种情况下，不安装 `/opt` 目录。在 Solaris 平台上，请分别安装 `/opt/SUNWspro` 和 `/opt/netbeans` 目录。在 Linux 平台上，请分别安装 `/opt/sun/sunstudio9` 和 `/opt/sun/netbeans` 目录。

> #### G. 确保 IDE 能找到核心平台

> 用于启动 IDE 的 `sunstudio` 命令会在以下两个位置查找核心平台：

> - 在 Solaris 平台上，该命令首先在缺省安装目录 `/opt/netbeans/3.5R` 下进行查找，而在 Linux 平台上，该命令首先在缺省安装目录 `/opt/sun/netbeans/3.5M` 下进行查找。
> - 如果该命令在缺省目录中找不到核心平台，则会假定包含 IDE 的目录与包含核心平台的目录被安装在同一位置。例如，在 Solaris 平台上,如果包含 IDE 的目录的路径是 `/foo/SUNWspro`，则该命令会在 `/foo/netbeans/3.5M` 中查找核心平台。在 Linux 平台上，如果包含 IDE 的目录的路径是 `/foo/SUNWspro`，则该命令会在 `/foo/netbeans/3.5M` 中查找核心平台。

> 如果未将核心平台安装在 `sunstudio` 命令进行查找的任一位置处，则客户端系统中的每位用户均须将环境变量 `SPRO_NETBEANS_HOME` 设置为安装核心平台的位置 (`installation_directory/netbeans/3.5M`)。

> 在 Solaris 平台上，IDE 的每位用户也必须将 `/installation_directory/SUNWspro/bin` 添加到任何其他版本的 Forte Developer 软件、Sun ONE Studio 软件或 Sun Studio 软件路径前的 `$PATH` 中。在 Linux 平台上，IDE 的每位用户也必须将 `/installation_directory/sunstudio9/bin` 添加到任何其他版本的 Sun Studio 软件路径前的路径中。

> 注意：不能将路径 `/installation_directory/netbeans/3.5M/bin` 添加到用户的 `$PATH` 中。

> #### H. 确保 IDE 能找到正确的 J2SE 技术

> IDE 需要使用 J2SE 1.4.2_02 技术。每个客户端系统必须具备下列项之一：

> - 安装在系统中的 J2SE 1.4.2_02 技术
> - 对安装有 J2SE 1.4.2_02 技术的路径的网络访问权

> 为确定是否已将有效的 J2SE 1.4.2_02 技术安装在本地系统的标准位置或是否存在于 `$PATH` 中，请键入：

>     checkjava

> 如果 `checkjava` 命令找到有效的 J2SE 技术，则该命令的输出为：

>     Using J2SDK version version from path

> 如果收到了该输出结果，则系统已有所需的 J2SE，并且 IDE 会找到它。

> 如果该命令没有找到有效的 J2SE 技术，则命令输出结果为：

>     Could not find valid J2SDK in $PATH or in a standard location

> 在这种情况下，您可以有几种选择：

> - 在本地系统中安装随产品提供的 J2SE 1.4.2_02 技术。 For instructions, see the Sun Studio 9 Installation and Setup Guide for Solaris Platforms or the Sun Studio 9 Installation and Setup Guide for Linux Platforms.
> - 请询问您的系统管理员以获得安装在网络中的 J2SE 1.4.2 技术的路径。如果此路径可用：
>   - 将网络中的 J2SE 1.4.2 技术的路径添加到您的 `$PATH` 中。
>   - 对 `sunstudio` 命令使用 `--jdkhome` 选项以指定网络中的 J2SE 1.4.2_02 技术的路径。有关详细信息，参见 `sunstudio`(1) 手册页。（要显示 `sunstudio`(1) 手册页，则在 Solaris 平台上，`$MANPATH` 中必须含有 `/installation_directory/man`，而在 Linux 平台上，`$MANPATH` 中必须含有 `/installation_directory/sunstudio9/man`。）
>   - 将 `JDK_HOME` 环境变量设置为网络中的 J2SE 1.4.2_02 技术的路径。

> #### I. 启动 IDE

> 用于启动 IDE 的命令是 `sunstudio`。有关此命令的详细信息，参见 `sunstudio`(1) 手册页。（要显示 `sunstudio`(1) 手册页，则在 Solaris 平台上，`$MANPATH` 中必须含有 `/installation_directory/man`，而在 Linux 平台上，`$MANPATH` 中必须含有 `/installation_directory/sunstudio9/man`。）

> #### J. 问题和解决办法

> 本节讨论了已知的软件问题及其可能的解决方法。有关更新信息，请查看开发人员门户，网址：`http://developers.sun.com/prodtech/cc/support_index.html`。

> 1. 外部浏览器无法启动或显示请求的链接
> 2. 当使用外部编辑器 GVim 或 XEmacs 时，[新建断点] 对话框经常不能利用当前文件和行信息正确地设置籽数
> 3. 如果存在交换文件，GVim 不会响应 IDE
> 4. 当使用外部编辑器模块和 XEmacs 时，保存多字节注释会破坏保存的文件。
> 5. 当在 Ja 语言环境中使用外部编辑器模块时，断点将显示在错误的行上
> 6. 在 XEmacs 窗口中约 1 秒钟后，选择被拭除
> 7. 在开始调试一个可执行文件时，有时会得到一个 FileStateInvalidException
> 8. 删除最后一行将关闭外部编辑器文档连接
> 9. ~ 字符不会向 GVim 发送更改请求
> 10. GVim 中的 `cw` 命令可能会破坏文件
> 11. 关闭并重新打开输出窗口会导致选项卡消失

> 1. ##### 外部浏览器无法启动或显示请求的链接

>    如果在 [帮助] 菜单中选择 [编译器/工具文档] 项，或是在 [欢迎] 屏幕中单击 [开发人员门户] 链接，IDE 可能无法成功启动外部浏览 器或使用现已运行的外部浏览器来显示文档索引或开发人员门户。

>    解决办法：

>    使用下列 URL 在 IDE 之外启动外部浏览器：

>    - 对其中包含可链接到所有手册页、自述文件和手册的链接的 Sun Studio 9 for Solaris platform 或 Sun Studio 9 for Linux platform 产品的文档索引页而言，应使用 `installation_directory/SUNWspro/docs`
>    - 对于提供代码样例、技术文章、知识库项目及文档的 Sun Studio 9 的开发人员门户，应使用 `http://developers.sun.com/prodtech/cc/index.html`。

> 2. ##### 当使用外部编辑器 GVim 或 XEmacs 时，[新建断点] 对话框经常不能利用当前文件和行信息正确地设置籽数 (4981442)

>    当显示 [新建断点] 对话框时，应将 [断点类型] 设置为 [文件:行]，并根据编辑器中的光标来设置 [文件] 和 [行] 文本字段。在许多情况下，当显示该对话框时，[文件] 和 [行] 字段为空白，因而必须键入文件和行信息。

>    解决办法：

>    有三种方式可显示此对话框。如果从 [调试器] 窗口的 [断点] 视图中显示它，则几乎无法看到 [文件] 和 l [行] 信息。如果使用 Shift+Ctrl+F8 从外部编辑器（GVim 或 XEmacs）显示它，则会正确设置 [文件] 和 [行] 信息。如果从 [调试] 菜单显示该对话框，则取决于上次在 IDE 窗口中键入或单击的位置。

> 3. ##### 如果存在交换文件，GVim 不会响应 IDE (4801244)

>    在一个含有现有 vim 交换文件的源文件上，如果从 [资源管理器] 启动 GVim，GVim 将显示有关现有交换文件的错误 E325。GVim 窗口底部会显示“敲击 ENTER 键或键入命令以继续”。

>    上述错误导致两个问题。首先，如果 GVim 位于其他窗口之下，在将它提到上面时，文本不会刷新，因此看到的只是一个空窗口。其次，IDE 不会从 GVim 得到预期的响应，并会导致连接超时。

>    如果超时前（连接发生超时前大约有 30 秒时间）在 GVim 中按 Enter 键，则会正确建立连接。

> 4. ##### 当使用外部编辑器模块和 XEmacs 时，保存多字节注释会破坏保存的文件。 (4950716)

>    解决办法：

>    不要使用多字节。

> 5. ##### 当在 Ja 语言环境中使用外部编辑器模块时，断点将显示在错误的行上 (4948883)

>    如果在第 20 行上设置了一个断点，则该断点会显示在第 21 行上。在中文语言环境中也可能出现这一问题。

> 6. ##### 在 XEmacs 窗口中约 1 秒钟后，选择被拭除 (4964962)

>    目前还没有找到解决此问题的办法。

> 7. ##### 在开始调试一个可执行文件时，有时会得到一个 FileStateInvalidException (4960929)

>    如果在启动调试器时得到此异常，还会得到一个糟糕的窗口布局。退出 IDE，然后重新启动。

> 8. ##### 删除最后一行将关闭外部编辑器文档连接 (4985044)

>    将在 GVim 中显示的文件的最后一行删除会停止 GVim 和 IDE 之间的连接。将通知用户已失去连接。

> 9. ##### ~ 字符不会向 GVim 发送更改请求

>    文件中每个更改的字符都必须向 GVim 发回消息，告诉 GVim 说字符已更改。'~' 字符不发送该消息。

> 10. ##### GVim 中的 `cw` 命令可能会破坏文件

>     在通过 GVim 编辑文件时使用 `cw` 命令然后保存文件，可能会生成破坏的文件。

> 11. ##### 关闭并重新打开输出窗口会导致选项卡消失

>     如果您正在运行单个调试会话，而且关闭输出窗口并重新打开它，则重新打开的窗口中只有 [输出] 选项卡。

>     解决办法：
>     终止当前的调试会话并启动新的会话， [输出] 窗口中就会显示所有选项卡。

> #### K. 限制和不兼容性

> Sun Studio 9 IDE 有如下限制：

> - dbx 调试程序的以下功能不适用于 Linux 平台：
>   - ss_attach（在程序开始执行时捕获它）
>   - 主存文件调试
>   - 修复并继续
>   - Java 调试
>   - 使用 `dbx collector` 命令或 [收集器] 对话框的性能数据收集（但您可以在性能分析器中使用 `collect` 命令或 [收集器] 窗口收集性能数据。）
>   - 运行时检查
>   - 异常断点
>   - 故障断点
>   - 系统调用断点
>   - 进程事件断点（您无法在 [新建断点] 对话框中设置进程事件断点。可以从 [输出] 窗口的 [调试程序控制台]选项卡中的 `dbx` 命令行上，对 `exit`、`next`、`step`、`stop`、`gone` 和 `syncrtld` 事件设置断点。
>   - 调试程序事件断点（您无法在 [新建断点] 对话框中设置调试程序事件断点。可以从 [输出] 窗口的 [调试程序控制台]选项卡中的 `dbx` 命令行上，对 `attach` 和 `detach` 事件设置断点。
> - C++ 表达式的运行时类型信息不适用于使用 g++ 编译器编译的程序。
> - 关于在 Linux 平台上调试多线程程序的限制信息，请参见 dbx Readme。
> - 运行时检查的内存访问检查功能不适用于 Solaris OS x86 Platform Edition。

> 版权所有 © 2004 Sun Microsystems, Inc. 保留所有权利。必须依据许可证条款使用。