Oracle® Developer Studio 12.5:IDE 快速入门教程

退出打印视图

更新时间: 2016 年 6 月
 
 

对项目运行内存访问检查

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

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

  1. 如果尚未这样做,请从位于 http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/solaris-studio-12-4-samples-2333090.htmlhttp://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/solaris-studio-12-4-samples-2333090.html 的 Oracle Developer Studio 12.5 Sample Applications(Oracle Developer Studio 12.5 样例应用程序)Web 页下载样例应用程序 zip 文件,然后将该文件解压缩到您选择的位置中。memorychecks 应用程序位于 OracleDeveloperStudio12.5-Samples 目录的 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“(内存分析工具)窗口

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