Oracle® Developer Studio 12.5:Discover 和 Uncover 用户指南

退出打印视图

更新时间: 2016 年 6 月
 
 

简单程序示例

以下示例说明了如下过程:准备程序,使用 discover 对其检测,然后运行该程序并生成有关检测到的内存访问错误的报告。此示例使用了一个访问未初始化数据的简单程序。

% cat test_UMR.c
#include <stdio.h>
#include <stdlib.h>
int main()
{
//  UMR:  accessing uninitialized data
int *p = (int*) malloc(sizeof(int));
printf("*p = %d\n", *p);
free(p);
}

% cc -g  test_UMR.c
% a.out
*p = 131464
% discover a.out
% a.out 

discover 输出指示在何处使用了未初始化的内存以及在何处对其进行了分配,同时提供结果摘要,如下图中所示。

image:HTML 报告