File: mcleak.stdinB.gdb

package info (click to toggle)
valgrind 1%3A3.12.0~svn20160714-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 120,428 kB
  • ctags: 70,855
  • sloc: ansic: 674,645; exp: 26,134; xml: 21,574; asm: 7,570; cpp: 7,567; makefile: 7,380; sh: 6,188; perl: 5,855; haskell: 195
file content (84 lines) | stat: -rw-r--r-- 2,492 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# connect gdb to Valgrind gdbserver:
target remote | ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-mcleak
echo vgdb launched process attached\n
monitor v.set vgdb-error 999999
#
#
# insert break:
break breakme
#
# continue till each break and execute via gdb the leak search as done in the C code.
continue
#
#
#   fprintf(stderr, "expecting details 10 bytes reachable\n"); fflush(stderr); breakme();
up
monitor leak_check full reachable any
continue
#   VALGRIND_DO_LEAK_CHECK;
#
#   fprintf(stderr, "expecting to have NO details\n"); fflush(stderr);
up
monitor leak_check full reachable increased
continue
#   VALGRIND_DO_ADDED_LEAK_CHECK;
#
#   b10--; // lose b10
#   b21 = malloc (21);
#   fprintf(stderr, "expecting details +10 bytes lost, +21 bytes reachable\n"); fflush(stderr); breakme();
up
monitor leak_check full reachable increased
continue
#   VALGRIND_DO_ADDED_LEAK_CHECK;
#
#   for (i = 0; i < 2; i ++)
#      b32_33[i] = malloc (32+i);
#   fprintf(stderr, "expecting details +65 bytes reachable\n"); fflush(stderr); breakme();
up
monitor leak_check full reachable increased
continue
#   VALGRIND_DO_ADDED_LEAK_CHECK;
#
#   fprintf(stderr, "expecting to have NO details\n"); fflush(stderr); breakme();
up
monitor leak_check full reachable increased
continue
#   VALGRIND_DO_ADDED_LEAK_CHECK;
#
#   b10++;
#   fprintf(stderr, "expecting details +10 bytes reachable\n"); fflush(stderr); breakme();
up
monitor leak_check full reachable increased
continue
#   VALGRIND_DO_ADDED_LEAK_CHECK;
#
#   b10--;
#   fprintf(stderr, "expecting details -10 bytes reachable, +10 bytes lost\n"); fflush(stderr); breakme();
up
monitor leak_check full reachable changed
continue
#   VALGRIND_DO_CHANGED_LEAK_CHECK;
#
#   b10++;
#   fprintf(stderr, "expecting details -10 bytes lost, +10 bytes reachable\n"); fflush(stderr); breakme();
up
monitor leak_check full reachable changed
continue
#   VALGRIND_DO_CHANGED_LEAK_CHECK;
#
#   b32_33[0]--;
#   fprintf(stderr, "expecting details 32 (+32) bytes lost, 33 (-32) bytes reachable\n"); fflush(stderr); breakme();
up
monitor leak_check full reachable changed
# output all leak records:
monitor leak_check full reachable any unlimited
# output the 2 biggest leak records:
monitor leak_check full reachable any limited 2
#output the biggest leak record:
monitor leak_check full reachable any limited 1
# output the biggest definitely leaked record:
monitor leak_check full definiteleak any limited 1
continue
#   VALGRIND_DO_CHANGED_LEAK_CHECK;
#
quit