| 跳过导航链接 | |
| 退出打印视图 | |
|
Oracle Solaris Studio 12.3:Discover 和 Uncover 用户指南 Oracle Solaris Studio 12.3 Information Library (简体中文) |
下例说明了如何准备程序、使用 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 -02 test_UMR.c
% a.out
*p = 131464
% discover a.out
% a.out
Discover 输出显示了在何处使用了未初始化内存、将其分配至了何处,以及结果摘要。