blob: 437556ab66f22c46a955d91099adf30b7d7f80ff [file] [log] [blame]
sewardj3b290482011-05-06 21:02:55 +00001# connect gdb to Valgrind gdbserver:
2target remote | ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-mcleak
sewardjeefeeb72011-05-10 11:01:07 +00003echo vgdb launched process attached\n
sewardj30b3eca2011-06-28 08:20:39 +00004monitor v.set vgdb-error 999999
sewardj3b290482011-05-06 21:02:55 +00005#
6#
7# insert break:
8break breakme
9#
10# continue till each break and execute via gdb the leak search as done in the C code.
11continue
12#
13#
14# fprintf(stderr, "expecting details 10 bytes reachable\n"); fflush(stderr); breakme();
15up
sewardj30b3eca2011-06-28 08:20:39 +000016monitor leak_check full reachable any
sewardj3b290482011-05-06 21:02:55 +000017continue
18# VALGRIND_DO_LEAK_CHECK;
19#
20# fprintf(stderr, "expecting to have NO details\n"); fflush(stderr);
21up
sewardj30b3eca2011-06-28 08:20:39 +000022monitor leak_check full reachable increased
sewardj3b290482011-05-06 21:02:55 +000023continue
24# VALGRIND_DO_ADDED_LEAK_CHECK;
25#
26# b10--; // lose b10
27# b21 = malloc (21);
28# fprintf(stderr, "expecting details +10 bytes lost, +21 bytes reachable\n"); fflush(stderr); breakme();
29up
sewardj30b3eca2011-06-28 08:20:39 +000030monitor leak_check full reachable increased
sewardj3b290482011-05-06 21:02:55 +000031continue
32# VALGRIND_DO_ADDED_LEAK_CHECK;
33#
34# for (i = 0; i < 2; i ++)
35# b32_33[i] = malloc (32+i);
36# fprintf(stderr, "expecting details +65 bytes reachable\n"); fflush(stderr); breakme();
37up
sewardj30b3eca2011-06-28 08:20:39 +000038monitor leak_check full reachable increased
sewardj3b290482011-05-06 21:02:55 +000039continue
40# VALGRIND_DO_ADDED_LEAK_CHECK;
41#
42# fprintf(stderr, "expecting to have NO details\n"); fflush(stderr); breakme();
43up
sewardj30b3eca2011-06-28 08:20:39 +000044monitor leak_check full reachable increased
sewardj3b290482011-05-06 21:02:55 +000045continue
46# VALGRIND_DO_ADDED_LEAK_CHECK;
47#
48# b10++;
49# fprintf(stderr, "expecting details +10 bytes reachable\n"); fflush(stderr); breakme();
50up
sewardj30b3eca2011-06-28 08:20:39 +000051monitor leak_check full reachable increased
sewardj3b290482011-05-06 21:02:55 +000052continue
53# VALGRIND_DO_ADDED_LEAK_CHECK;
54#
55# b10--;
56# fprintf(stderr, "expecting details -10 bytes reachable, +10 bytes lost\n"); fflush(stderr); breakme();
57up
sewardj30b3eca2011-06-28 08:20:39 +000058monitor leak_check full reachable changed
sewardj3b290482011-05-06 21:02:55 +000059continue
60# VALGRIND_DO_CHANGED_LEAK_CHECK;
61#
62# b10++;
63# fprintf(stderr, "expecting details -10 bytes lost, +10 bytes reachable\n"); fflush(stderr); breakme();
64up
sewardj30b3eca2011-06-28 08:20:39 +000065monitor leak_check full reachable changed
sewardj3b290482011-05-06 21:02:55 +000066continue
67# VALGRIND_DO_CHANGED_LEAK_CHECK;
68#
69# b32_33[0]--;
70# fprintf(stderr, "expecting details 32 (+32) bytes lost, 33 (-32) bytes reachable\n"); fflush(stderr); breakme();
71up
sewardj30b3eca2011-06-28 08:20:39 +000072monitor leak_check full reachable changed
philippe84234902012-01-14 13:53:13 +000073# output all leak records:
74monitor leak_check full reachable any unlimited
75# output the 2 biggest leak records:
76monitor leak_check full reachable any limited 2
77#output the biggest leak record:
78monitor leak_check full reachable any limited 1
79# output the biggest definitely leaked record:
80monitor leak_check full definiteleak any limited 1
sewardj3b290482011-05-06 21:02:55 +000081continue
82# VALGRIND_DO_CHANGED_LEAK_CHECK;
83#
84quit