JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.3 发行版的新增功能     Oracle Solaris Studio 12.3 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  Oracle Solaris Studio 12.3 发行版简介

2.  编译器

3.  库

4.  代码分析工具

5.  性能分析工具

6.  调试工具

7.  Oracle Solaris Studio IDE

8.  其他工具

9.  此发行版中的已知问题、限制和解决方法

编译器

编译器共有的问题

文档勘误表

C++

Solaris 上的 Apache 标准库问题

多义性:构造函数调用或指向函数的指针

如果将 -xipo 或 -xcrossfile 与 -instances=static 组合,链接会失败

名称改编链接问题

不支持引用模板中的非全局名称空间目标

名称空间内的 #pragma align 需要改编名称

Fortran

Fortran 77 库已删除

数组内部函数使用全局寄存器:

归档库中的 F95 模块不包括在可执行文件中:

Linux 平台上的 gethrtime(3F)

工具

dbx

已知的 dbx 问题和解决方法

dbx 限制和不兼容情况

性能分析器

collect 实用程序

线程分析器

er_kernel 实用程序

IDE

dmake

dmake 限制

安装

索引

工具

dbx

已知的 dbx 问题和解决方法

  1. dbx 连接到进程时发生数据收集问题

    如果将 dbx 连接到一个正在运行的进程,但是没有预先装入收集器库 libcollector.so,将发生一系列错误。

    • 无法收集任何跟踪数据:同步等待跟踪、堆跟踪或 MPI 跟踪。跟踪数据是通过对各个库执行插入操作而收集的。如果没有预先装入 libcollector.so,将无法执行插入操作。

    • 如果在 dbx 连接到进程后程序安装了一个信号处理程序,并且该信号处理程序不传递 SIGPROF 和 SIGEMT 信号,则分析数据和抽样数据将会丢失。

    • 如果程序使用异步 I/O 库 libaio.so ,则基于时钟的分析数据和抽样数据将会丢失,因为 libaio.so 需要使用 SIGPROF 来执行异步取消操作。

    • 如果程序使用硬件计数器库 libcpc.so ,则硬件计数器溢出分析实验将会遭到破坏,因为收集器和程序都在使用该库。如果在将 dbx 连接到进程后装入了硬件计数器库,只要通过广义搜索而不是在 libcpc.so 中搜索来解析对 libcpc 库函数的引用,硬件计数器实验即可顺利进行。

    • 如果程序调用 setitimer(2),则由于收集器和程序同时使用定时器,可能会使基于时钟的分析实验中断。

  2. dbx 在调试 Java 代码时可能会崩溃

    如果从 dbx shell 内部发出一个 cd 命令,或者设置 CLASSPATH 环境变量或 CLASSPATHX 环境变量,dbx 随后可能会因分段错误而崩溃。

    解决方法:

    • 请勿执行上述任何操作。

    • 在执行上述任何操作前,请删除所有监视(显示)。

  3. dbx 在重新调试 Java 代码时崩溃

    在 Java 代码的一行内发出两条 debug 命令可能会导致 dbx 崩溃。

  4. 调试应用程序的 J2SE 不同于最初构建应用程序的 J2SE 时,dbx 会抛出异常。

    如果您在一个版本的 J2SE 技术下构建了应用程序,又在另一个不同发行版的 J2SE 下调试此应用程序,dbx 会抛出异常。

  5. 由于 RTC 预监视分配而报告伪 RUA 错误

    在具有多线程程序的不寻常情况下,如果运行时检查 (runtime checking, RTC) 检测到在其开始监视内存分配之前分配的与线程有关的内部数据访问,会报告伪 RUA 错误。由于这些情况是正常线程切换行为的一部分,因此可以使用 dbx suppress 命令放心地忽略这些伪 RUA 报告。

dbx 限制和不兼容情况

Oracle Solaris Studio 12.3 dbx 有以下限制:

性能分析器

本节介绍性能分析器工具的已知问题。

collect 实用程序

本节介绍了 collect 实用程序和数据收集的已知问题。

线程分析器

本节介绍线程分析器的已知问题。

如果下列所有条件均为真,线程分析器可能会发生运行时失败:

要避免此问题,应在运行 collect 之前,设置环境变量 LD_NOAUXFLTR=yes 以跳过装入过滤器库。由于没有使用过滤器,性能可能会受一些影响。

er_kernel 实用程序

本节介绍 er_kernel 实用程序的已知问题:

IDE

本节介绍 IDE 中的已知问题。

dmake

本节介绍了已知的 dmake 软件问题及可能的解决方法。

如果在分布式模式下使用 dmake 出现任何问题,请验证以下内容:

  1. $HOME 环境变量应设置为可访问的目录。

    % ls -la $HOME

  2. 文件 $HOME/.dmakerc 存在且可读,并包含正确的信息。

    % cat $HOME/.dmakerc

  3. 通过使用 /usr/sbin/ping 命令检查每台主机,确保 $HOME/.dmakerc 文件中提及的所有主机均处于活动状态。

    % /usr/sbin/ping $HOST

    其中,$HOST 是系统的名称,它作为主机列于 $HOME/.dmakerc 文件中。

  4. 通过使用 dmakerxmrxs 命令,验证 dmake 二进制文件的路径是否正确。

           % which dmake
           % which rxm
           % which rxs   
  5. 远程登录(rshssh)每一台主机时不需要输入口令,并且每次远程登录所花费的时间处于可接受的范围(小于 2 秒钟)。

    % time rsh $HOST uname -a

  6. 文件 /etc/opt/SPROdmake/dmake.conf 在每台主机中存在并包含正确的信息。如果此文件不存在,dmake 将仅在此系统上分发一个作业:

    % rsh $HOST cat /etc/opt/SPROdmake/dmake.conf

  7. 对于每台主机,dmake 二进制文件的路径是正确的:

           % rsh $HOST `which dmake`
           % rsh $HOST `which rxm`
           % rsh $HOST `which rxs`    
  8. 可从每台主机获取生成区域 (rwx):

           % cd $BUILD
           % rm $HOST.check.tmp
           % echo "Build area is available from host $HOST" > $HOST.check.tmp
           % rsh $HOST cat $BUILD/$HOST.check.tmp 

    其中,$BUILD 是生成区域的完整路径。

  9. 可从每台主机获取 $HOME

           % cd $HOME
           % rm $HOST.check.tmp
           % echo "HOME is available from host $HOST" > $HOST.check.tmp
           % rsh $HOST cat $HOME/$HOST.check.tmp

dmake 限制

您可以将任何计算机作为生成服务器,只要其符合以下要求: