Oracle® Solaris Studio 12.4: Discover and Uncover User's Guide

Exit Print View

Updated: December 2015
 
 

Simple Program Example

The following example illustrated preparing a program, instrumenting it with discover, and then running it and producing a report on the detected memory access errors. This example uses a simple program that accesses uninitialized data.

% 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 

The discover output indicates where the uninitialized memory was used and where it was allocated, along with a summary of results, as shown in the following figure.

image:HTML report