Oracle® Solaris Studio 12.4:IDE 快速入门教程

退出打印视图

更新时间: 2014 年 10 月
 
 

对项目运行内存访问检查

您可以使用内存分析工具查找项目中的内存访问错误。使用该工具,您可以定位源代码中出现各个错误的确切位置,从而轻松地找到这些错误。

内存分析工具会在程序执行期间动态捕捉并报告内存访问错误,因此,如果您的代码的某个部分在运行时未执行,则不会报告该部分的错误。

  1. 如果您尚未执行此操作,请从位于 http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/solaris-studio-samples-1408618.html 的 Oracle Solaris Studio 12.3 Sample Applications(Oracle Solaris Studio 12.3 样例应用程序)Web 页下载样例应用程序 zip 文件,然后将该文件解压缩到您选择的位置中。memorychecks 应用程序位于 SolarisStudioSampleApplications 目录的 CodeAnalyzer 子目录中。

  2. 使用 memorychecks 应用程序基于现有源代码创建项目。

  3. 右键单击项目,然后选择 "Properties"(属性)。在 "Project Properties"(项目属性)对话框中,选择 "Run"(运行)节点,然后在 "Run Command"(运行命令)的输出路径后面键入 Customer.db。单击 "OK"(确定)。

  4. 运行项目。

  5. 在采用内存分析检测的情况下生成项目。

    1. 单击 "Profile Project"(分析项目)按钮 image: 旁边的向下箭头,然后从下拉式列表中选择 "Profile Project to find Memory Access Errors"(分析项目以查找内存访问错误)。

    2. 在 "Select Analysis Type"(选择分析类型)对话框中,从下拉式列表中选择 "All Memory Access Errors"(所有内存访问错误)。

      image:“Select Analysis Type“(选择分析类型)对话框

      "Overhead"(开销)字段中会显示 "High"(高)或 "Moderate"(中等)来表示系统将承受的负载。当系统开销很大时(例如,您同时检测数据争用和死锁时),在系统上运行的其他程序的性能可能会受到影响。

    3. 单击 "Start"(开始)。

  6. 会打开 "Run Memory Profile"(运行内存分析)对话框,让您知道将对您的二进制文件进行检测。单击 "OK"(确定)。

  7. 此时将生成并检测项目。应用程序开始运行并且 "Memory Analysis"(内存分析)窗口将打开。项目运行完成时,"Memory Analysis"(内存分析)窗口会列出在项目中找到的内存访问错误类型。在错误类型后面会在括号中显示每种类型的错误数。

    image:“Memory Analysis“(内存分析)窗口
  8. 单击某一错误类型时,该类型的错误将显示在 "Memory Analysis Tool"(内存分析工具)窗口中。

    image:“Memory analysis tool“(内存分析工具)窗口

    缺省情况下,错误按它们所在的源文件分组。单击某一错误时,将显示该错误的调用堆栈。双击堆栈中的某个函数调用可显示源文件中的相关行。