Philippe Waroquiers
e2ba2f3671
add heuristics decreasing false possible "possible leaks" in c++ code.
...
The option --leak-check-heuristics=heur1,heur2,... can activate
various heuristics to decrease the number of false positive
"possible leaks" for C++ code. The available heuristics are
detecting valid interior pointers to std::stdstring, to new[] allocated
arrays with elements having destructors and to interior pointers pointing
to an inner part of a C++ object using multiple inheritance.
This fixes 280271 Valgrind reports possible memory leaks on still-reachable
std::string
This has been tested on x86/amd64/ppc32/ppc64.
First performance measurements seems to show a neglectible impact on
the leak search.
More feedback welcome both on performance and functional aspects
(false positive 'possibly leaked' rate decrease and/or
false negative 'possibly leaked' rate increase).
Note that the heuristic is not checking that the memory has been
allocated with "new" or "new[]", as it is expected that in some cases,
specific alloc fn are used for c++ objects instead of the standard new/new[].
If needed, we might add an option to check the alloc functions
to be new/new[].
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13582
2013-09-29 13:47:32 +00:00
..
2011-06-26 09:13:27 +00:00
2012-10-17 21:32:03 +00:00
2011-05-06 21:02:55 +00:00
2011-10-03 23:39:54 +00:00
2011-06-18 08:28:04 +00:00
2011-10-08 12:41:12 +00:00
2011-07-04 22:00:41 +00:00
2012-10-17 21:32:03 +00:00
2011-06-28 08:20:39 +00:00
2011-06-26 09:26:48 +00:00
2013-05-09 21:29:23 +00:00
2013-02-24 23:16:58 +00:00
2012-01-26 23:13:52 +00:00
2012-01-26 23:13:52 +00:00
2012-01-26 23:13:52 +00:00
2012-01-26 23:13:52 +00:00
2011-05-06 21:02:55 +00:00
2013-09-04 21:42:43 +00:00
2013-09-04 21:42:43 +00:00
2011-05-06 21:02:55 +00:00
2011-05-10 11:01:07 +00:00
2011-05-27 13:23:44 +00:00
2011-06-26 09:13:27 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2011-06-26 09:13:27 +00:00
2011-05-15 06:07:57 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2013-09-29 13:47:32 +00:00
2011-06-28 08:20:39 +00:00
2011-05-10 11:01:07 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2011-05-17 17:15:07 +00:00
2011-05-10 11:01:07 +00:00
2011-05-27 13:23:44 +00:00
2011-06-28 08:20:39 +00:00
2011-05-27 13:23:44 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2011-05-06 21:02:55 +00:00
2011-10-09 19:58:19 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2011-06-26 12:41:33 +00:00
2012-10-17 21:32:03 +00:00
2012-01-14 13:53:13 +00:00
2012-10-17 21:32:03 +00:00
2011-10-03 23:39:54 +00:00
2011-06-26 09:26:48 +00:00
2012-10-17 21:32:03 +00:00
2011-07-04 22:00:41 +00:00
2011-07-04 22:00:41 +00:00
2012-10-17 21:32:03 +00:00
2011-07-04 22:00:41 +00:00
2011-06-18 08:28:04 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2011-05-31 07:09:06 +00:00
2012-08-01 22:03:12 +00:00
2011-06-18 08:28:04 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2011-05-31 07:09:06 +00:00
2012-08-01 22:03:12 +00:00
2011-05-06 21:02:55 +00:00
2011-05-06 21:02:55 +00:00
2013-07-17 09:56:24 +00:00
2011-05-10 11:01:07 +00:00
2011-07-04 22:00:41 +00:00
2013-07-30 20:26:06 +00:00
2011-05-06 21:02:55 +00:00
2013-07-30 20:26:06 +00:00
2013-07-30 20:26:06 +00:00
2011-05-27 13:23:44 +00:00
2011-05-06 21:02:55 +00:00
2013-09-04 21:42:43 +00:00
2011-06-28 08:20:39 +00:00
2011-05-10 11:01:07 +00:00
2011-05-15 06:07:57 +00:00
2011-06-18 08:28:04 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2012-10-17 21:32:03 +00:00
2011-05-17 17:15:07 +00:00
2011-07-04 22:00:41 +00:00
2011-07-04 22:00:41 +00:00
2011-06-15 21:30:55 +00:00
2012-10-17 21:32:03 +00:00
2012-10-17 21:32:03 +00:00
2012-10-17 21:32:03 +00:00
2012-10-17 21:32:03 +00:00
2012-10-17 21:32:03 +00:00
2012-10-17 21:32:03 +00:00
2012-10-17 21:32:03 +00:00
2012-10-17 21:32:03 +00:00
2012-10-17 21:32:03 +00:00
2012-10-17 21:32:03 +00:00
2012-10-17 21:32:03 +00:00
2012-10-17 21:32:03 +00:00
2012-10-17 21:32:03 +00:00
2012-10-17 21:32:03 +00:00
2012-10-17 21:32:03 +00:00
2012-03-30 20:25:26 +00:00
2012-10-17 21:32:03 +00:00
2012-05-29 17:04:13 +00:00
2012-10-17 21:32:03 +00:00
2011-06-26 09:36:38 +00:00
2013-02-24 23:16:58 +00:00
2013-02-24 23:16:58 +00:00
2013-02-24 23:16:58 +00:00
2013-02-24 23:16:58 +00:00
2011-06-26 09:36:38 +00:00
2011-06-26 09:36:38 +00:00
2011-06-28 08:20:39 +00:00
2011-06-26 09:36:38 +00:00
2012-05-29 17:04:13 +00:00
2012-07-28 13:06:45 +00:00
2013-02-24 23:16:58 +00:00
2012-08-15 13:27:23 +00:00
2011-05-10 11:01:07 +00:00
2011-05-15 05:44:59 +00:00
2013-07-30 20:26:06 +00:00