Oracle® Developer Studio 12.5:使用 dbx 调试程序

退出打印视图

更新时间: 2016 年 6 月
 
 

运行时检查功能

由于运行时检查是一种综合的调试功能,因此可在使用运行时检查功能时(使用收集器收集性能数据的情况除外)执行所有调试操作。


注 -  但不能对 Java 代码使用运行时检查。

    运行时检查可提供以下功能:

  • 检测内存访问错误

  • 检测内存泄漏

  • 收集内存使用情况数据

  • 适用于所有语言环境

  • 适用于多线程代码

  • 无需重新编译、重新链接或进行 makefile 更改

使用 –g 标志进行编译,可提供运行时检查错误消息中的源代码行号相关性。运行时检查也可以检查使用优化 –O 标志进行编译的程序。对于不使用 -g 选项编译的程序,有一些特殊考虑事项。

可以通过 check 命令使用运行时检查功能。

何时使用运行时检查

要避免突然看到大量错误,请在开发周期的早期使用运行时检查,这是因为您正在开发的各个模块最终将组成一个程序。 先编写一个单元测试来驱动每个模块,然后使用运行时检查以递增方式逐个检查模块。此方法意味着您可一次处理数量较少的错误。将所有模块集成为完整的程序时,遇到的新错误可能会很少。将错误数减少为零后,就只有在对模块进行了更改时,才需要再次使用运行时检查。

运行时检查要求

    要使用运行时检查必须满足下列要求:

  • libc 动态链接。

  • 使用标准 libc mallocfreerealloc 函数或基于这些函数的分配器。运行时检查提供了一个应用编程接口 (application programming interface, API) 来处理其他分配器。请参见运行时检查应用编程接口

  • 可接受未完全剥离的程序以及使用 strip -x 剥离的程序。

有关运行时检查限制的信息,请参见运行时检查限制