https://bugs.kde.org/show_bug.cgi?id=199468

Philippe Waroquiers <philippe.waroqui...@skynet.be> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |philippe.waroquiers@skynet.
                   |                            |be

--- Comment #2 from Philippe Waroquiers <philippe.waroqui...@skynet.be> ---
(In reply to Robin Kuzmin from comment #1)
> I have the same issue.
> I have a suppression:
> {
>    google::protobuf::Message::PrintDebugString() const (text_format.cc:110)
>    Memcheck:Leak
>    match-leak-kinds: reachable
>    fun:_Znwm
>    ...
>    fun:_ZNK6google8protobuf7Message11DebugStringEv
>    fun:_ZNK6google8protobuf7Message16PrintDebugStringEv
>    ...
> }
> This suppression is ignored for "--num-callers=20", but works fine
> (suppresses) for "--num-callers=40". 
> I didn't expect the suppressions to depend on "--num-callers".

I think that we have 2 different problems:
The bug speaks about the fact that a suppression is limited to 24 entries,
while the --num-callers can now (in valgrind 3.11) go up to 500.

Your problem is that a suppression works with 40 num callers, but does not
suppress
for 20 num callers. This is not abnormal: if for example 
fun:_ZNK6google8protobuf7Message11DebugStringEv is at depth 30, when you use
--num-callers=20, then this function will not be recorded in the error
stacktrace and the suppression will not match.
This is because the logic is:
  * first an error is made, with a stacktrace recorded as specified with
--num-callers
  * after that, the suppression entries are tried.

If suppressions would have to be done without taking --num-callers into
account, then it
means that all errors stacktraces would have to be first recorded without
limit, and then after
(unsuccesful) suppression matching, the frames exceeding --num-callers would
have to be dropped.

The original problem (suppressions limited to 24 entries while errors can
record up to 500 frames) is somewhat strange. I could not retrieve any comment
or svn log describing why
suppression entries are limited to 24 entries. --num-callers used to be limited
to 50.

If we increase the nr of entries in suppressions to 500 (the max value for
--num-callers),
this will however has as a side effect that --gen-suppressions will produce
bigger entries
while they were limited to 24 entries. I guess this is not a problem, as in any
case, for many suppression entries, 24 was already a lot (e.g. for suppression
entries intended to suppress errors in libraries)

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to