Debugging Dynamic Memory Usage Errors Using HP WDB v6.3 (5900-2181, August 2012)
Example 2 Incremental Heap Profile
Sample Program
$ cat testincremental.c
1 #include <stdio.h>
2 #include <malloc.h>
3
4 char *f1_p;
5 char *f2_p;
6 char *f3_p;
7
8 void marker1()
9 {}
10
11 int
12 func1()
13 {
14 int i;
15 for (i = 0; i< 2; i++)
16 f1_p = (char *)malloc(10);
17 return 1;
18 }
19
20
21 int
22 func2()
23 {
24 int i;
25 for (i = 0; i< 2; i++)
26 f2_p = (char *)malloc(20);
27 return 1;
28 }
29
30
31 int
32 func3()
33 {
34 int i;
35 for (i = 0; i< 2; i++)
36 f3_p = (char *)malloc(30);
37 return 1;
38 }
39
40
41 main()
42 {
43 int i;
44 int repeat;
45
46 for (repeat = 0; repeat < 2; repeat++)
47 for (i = 0; i < 2; i++) {
48 func1();
49 sleep (1);
50 }
51
52 /* 2 interval records */
53 marker1();
54
55 for (repeat = 0; repeat < 2; repeat++)
56 for (i = 0; i < 2; i++) {
57 func2();
58 sleep (1);
59 }
60
14