| Index: memcheck/mc_main.c |
| =================================================================== |
| --- memcheck/mc_main.c (revision 10880) |
| +++ memcheck/mc_main.c (working copy) |
| @@ -4658,6 +4658,7 @@ |
| LeakCheckMode MC_(clo_leak_check) = LC_Summary; |
| VgRes MC_(clo_leak_resolution) = Vg_HighRes; |
| Bool MC_(clo_show_reachable) = False; |
| +Bool MC_(clo_show_possible) = True; |
| Bool MC_(clo_workaround_gcc296_bugs) = False; |
| Int MC_(clo_malloc_fill) = -1; |
| Int MC_(clo_free_fill) = -1; |
| @@ -4711,6 +4712,7 @@ |
| |
| if VG_BOOL_CLO(arg, "--partial-loads-ok", MC_(clo_partial_loads_ok)) {} |
| else if VG_BOOL_CLO(arg, "--show-reachable", MC_(clo_show_reachable)) {} |
| + else if VG_BOOL_CLO(arg, "--show-possible", MC_(clo_show_possible)) {} |
| else if VG_BOOL_CLO(arg, "--workaround-gcc296-bugs", |
| MC_(clo_workaround_gcc296_bugs)) {} |
| |
| @@ -4776,6 +4778,7 @@ |
| " --leak-check=no|summary|full search for memory leaks at exit? [summary]\n" |
| " --leak-resolution=low|med|high differentiation of leak stack traces [high]\n" |
| " --show-reachable=no|yes show reachable blocks in leak check? [no]\n" |
| +" --show-possible=no|yes show possibly lost blocks in leak check? [yes]\n" |
| " --undef-value-errors=no|yes check for undefined value errors [yes]\n" |
| " --track-origins=no|yes show origins of undefined values? [no]\n" |
| " --partial-loads-ok=no|yes too hard to explain here; see manual [no]\n" |
| Index: memcheck/mc_include.h |
| =================================================================== |
| --- memcheck/mc_include.h (revision 10880) |
| +++ memcheck/mc_include.h (working copy) |
| @@ -395,6 +395,9 @@ |
| /* In leak check, show reachable-but-not-freed blocks? default: NO */ |
| extern Bool MC_(clo_show_reachable); |
| |
| +/* In leak check, show possibly-lost blocks? default: YES */ |
| +extern Bool MC_(clo_show_possible); |
| + |
| /* Assume accesses immediately below %esp are due to gcc-2.96 bugs. |
| * default: NO */ |
| extern Bool MC_(clo_workaround_gcc296_bugs); |
| Index: memcheck/mc_leakcheck.c |
| =================================================================== |
| --- memcheck/mc_leakcheck.c (revision 10880) |
| +++ memcheck/mc_leakcheck.c (working copy) |
| @@ -845,7 +845,8 @@ |
| print_record = is_full_check && |
| ( MC_(clo_show_reachable) || |
| Unreached == lr->key.state || |
| - Possible == lr->key.state ); |
| + ( MC_(clo_show_possible) && |
| + Possible == lr->key.state ) ); |
| // We don't count a leaks as errors with --leak-check=summary. |
| // Otherwise you can get high error counts with few or no error |
| // messages, which can be confusing. Also, you could argue that |