You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
(58) |
Apr
(261) |
May
(169) |
Jun
(214) |
Jul
(201) |
Aug
(219) |
Sep
(198) |
Oct
(203) |
Nov
(241) |
Dec
(94) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(137) |
Feb
(149) |
Mar
(150) |
Apr
(193) |
May
(95) |
Jun
(173) |
Jul
(137) |
Aug
(236) |
Sep
(157) |
Oct
(150) |
Nov
(136) |
Dec
(90) |
| 2005 |
Jan
(139) |
Feb
(130) |
Mar
(274) |
Apr
(138) |
May
(184) |
Jun
(152) |
Jul
(261) |
Aug
(409) |
Sep
(239) |
Oct
(241) |
Nov
(260) |
Dec
(137) |
| 2006 |
Jan
(191) |
Feb
(142) |
Mar
(169) |
Apr
(75) |
May
(141) |
Jun
(169) |
Jul
(131) |
Aug
(141) |
Sep
(192) |
Oct
(176) |
Nov
(142) |
Dec
(95) |
| 2007 |
Jan
(98) |
Feb
(120) |
Mar
(93) |
Apr
(96) |
May
(95) |
Jun
(65) |
Jul
(62) |
Aug
(56) |
Sep
(53) |
Oct
(95) |
Nov
(106) |
Dec
(87) |
| 2008 |
Jan
(58) |
Feb
(149) |
Mar
(175) |
Apr
(110) |
May
(106) |
Jun
(72) |
Jul
(55) |
Aug
(89) |
Sep
(26) |
Oct
(96) |
Nov
(83) |
Dec
(93) |
| 2009 |
Jan
(97) |
Feb
(106) |
Mar
(74) |
Apr
(64) |
May
(115) |
Jun
(83) |
Jul
(137) |
Aug
(103) |
Sep
(56) |
Oct
(59) |
Nov
(61) |
Dec
(37) |
| 2010 |
Jan
(94) |
Feb
(71) |
Mar
(53) |
Apr
(105) |
May
(79) |
Jun
(111) |
Jul
(110) |
Aug
(81) |
Sep
(50) |
Oct
(82) |
Nov
(49) |
Dec
(21) |
| 2011 |
Jan
(87) |
Feb
(105) |
Mar
(108) |
Apr
(99) |
May
(91) |
Jun
(94) |
Jul
(114) |
Aug
(77) |
Sep
(58) |
Oct
(58) |
Nov
(131) |
Dec
(62) |
| 2012 |
Jan
(76) |
Feb
(93) |
Mar
(68) |
Apr
(95) |
May
(62) |
Jun
(109) |
Jul
(90) |
Aug
(87) |
Sep
(49) |
Oct
(54) |
Nov
(66) |
Dec
(84) |
| 2013 |
Jan
(67) |
Feb
(52) |
Mar
(93) |
Apr
(65) |
May
(33) |
Jun
(34) |
Jul
(52) |
Aug
(42) |
Sep
(52) |
Oct
(48) |
Nov
(66) |
Dec
(14) |
| 2014 |
Jan
(66) |
Feb
(51) |
Mar
(34) |
Apr
(47) |
May
(58) |
Jun
(27) |
Jul
(52) |
Aug
(41) |
Sep
(78) |
Oct
(30) |
Nov
(28) |
Dec
(26) |
| 2015 |
Jan
(41) |
Feb
(42) |
Mar
(20) |
Apr
(73) |
May
(31) |
Jun
(48) |
Jul
(23) |
Aug
(55) |
Sep
(36) |
Oct
(47) |
Nov
(48) |
Dec
(41) |
| 2016 |
Jan
(32) |
Feb
(34) |
Mar
(33) |
Apr
(22) |
May
(14) |
Jun
(31) |
Jul
(29) |
Aug
(41) |
Sep
(17) |
Oct
(27) |
Nov
(38) |
Dec
(28) |
| 2017 |
Jan
(28) |
Feb
(30) |
Mar
(16) |
Apr
(9) |
May
(27) |
Jun
(57) |
Jul
(28) |
Aug
(43) |
Sep
(31) |
Oct
(20) |
Nov
(24) |
Dec
(18) |
| 2018 |
Jan
(34) |
Feb
(50) |
Mar
(18) |
Apr
(26) |
May
(13) |
Jun
(31) |
Jul
(13) |
Aug
(11) |
Sep
(15) |
Oct
(12) |
Nov
(18) |
Dec
(13) |
| 2019 |
Jan
(12) |
Feb
(29) |
Mar
(51) |
Apr
(22) |
May
(13) |
Jun
(20) |
Jul
(13) |
Aug
(12) |
Sep
(21) |
Oct
(6) |
Nov
(9) |
Dec
(5) |
| 2020 |
Jan
(13) |
Feb
(5) |
Mar
(25) |
Apr
(4) |
May
(40) |
Jun
(27) |
Jul
(5) |
Aug
(17) |
Sep
(21) |
Oct
(1) |
Nov
(5) |
Dec
(15) |
| 2021 |
Jan
(28) |
Feb
(6) |
Mar
(11) |
Apr
(5) |
May
(7) |
Jun
(8) |
Jul
(5) |
Aug
(5) |
Sep
(11) |
Oct
(9) |
Nov
(10) |
Dec
(12) |
| 2022 |
Jan
(7) |
Feb
(13) |
Mar
(8) |
Apr
(7) |
May
(12) |
Jun
(27) |
Jul
(14) |
Aug
(27) |
Sep
(27) |
Oct
(17) |
Nov
(17) |
Dec
|
| 2023 |
Jan
(10) |
Feb
(18) |
Mar
(9) |
Apr
(26) |
May
|
Jun
(13) |
Jul
(18) |
Aug
(5) |
Sep
(12) |
Oct
(16) |
Nov
(1) |
Dec
|
| 2024 |
Jan
(4) |
Feb
(3) |
Mar
(6) |
Apr
(17) |
May
(2) |
Jun
(33) |
Jul
(13) |
Aug
(1) |
Sep
(6) |
Oct
(8) |
Nov
(6) |
Dec
(15) |
| 2025 |
Jan
(5) |
Feb
(11) |
Mar
(8) |
Apr
(20) |
May
(1) |
Jun
|
Jul
|
Aug
(9) |
Sep
(1) |
Oct
(7) |
Nov
(1) |
Dec
|
|
From: Lionel C. <lio...@gm...> - 2014-02-13 11:48:30
|
On 29 January 2014 21:54, Tina Harriott <tin...@gm...> wrote: > On 22 January 2014 22:36, Philippe Waroquiers > <phi...@sk...> wrote: >> On Wed, 2014-01-22 at 00:19 +0100, Lionel Cons wrote: >>> On 22 January 2014 00:03, Tom Hughes <to...@co...> wrote: >>> > On 21/01/14 21:49, Tina Harriott wrote: >>> > >>> >> I am new to this list. Can anyone guide me dissect a problem with >>> >> valgrinds long double fp math on x86-64 cpus? We're getting major >>> >> malfunctions in our applications because any long double operation >>> >> (say y=sinl(x)) contains rubbish in the least significant bits. >>> > >>> > See the "Limitations" section of the manual: >>> > >>> > http://www.valgrind.org/docs/manual/manual-core.html#manual-core.limits >>> > >>> > Specifically the section about floating point limitations. >>> >>> "...Whether or not this is critical remains to be seen..." >>> >>> Yeah, that comment is so 'funny' that it hurts again. The difference >>> between 64bit math and 80bit math is whether a MBDA Meteor missile >>> will hit its target or not (Michael Östergren holds a personal grudge >>> against valgrind because of weeks lost due this particular >>> embarrassing bug screwing up simulations btw), whether the beams in >>> LHC will meet the (intended!) target or not, whether math in SAS >>> software works or not (warranting a warning in the written >>> documentation that running with valgrind to test 3rd party plugins is >>> not supported). So the list of things which do *NOT* work with >>> valgrind is *impressive* and hurt high value projects, IMHO warranting >>> at least the removal of that mocking comment "...Whether or not this >>> is critical remains to be seen...". Please. >> Effectively, it looks clear that many applications have problems >> with this aspect. Would be better to rephrase the doc :). >> >> Now, maybe these applications should better be compilable >> with 64 bits floats, and would/should then work properly natively >> and under valgrind. >> >> The gcc documentation says for -mfpmath=sse: >> >> The resulting code should be considerably faster in the majority of >> cases and avoid the numerical instability problems of 387 code, but >> may break some existing code that expects temporaries to be 80 >> bits. >> >> So, you might try to compile your app with the above flag >> (I guess you might need a #ifdef or so to have a typedef that >> is 80 bits without the above, and 64 bits with the above). >> >> But of course, we all agree it would be nice to have 80 bits floats >> properly supported by Valgrind. It is just nobody has time/money/effort >> to spend on that :(. > > Kickstarter project maybe? Philippe? > > Tina > -- > Tina Harriott - Women in Mathematics > Contact: tin...@gm... Lionel |
|
From: Dallman, J. <joh...@si...> - 2014-02-13 10:39:35
|
> I have a lot of calls to functions with names that I recognise, > but which have a '2 appended to their names. These don't exist > in the source: any idea what they signify? They're in the callgrind documentation; they're about recursion, and I clearly need to accumulate their call counts into those for the basic function. Thanks, Julian. -- John Dallman ----------------- Siemens Industry Software Limited is a limited company registered in England and Wales. Registered number: 3476850. Registered office: Faraday House, Sir William Siemens Square, Frimley, Surrey, GU16 8QD. |
|
From: Dallman, J. <joh...@si...> - 2014-02-13 09:18:13
|
Philippe Waroquiers <phi...@sk...> wrote: > Starting callgrind with default options, and then using > kcachegrind on the resulting callgrind.out file, kcachegrind > shows the nr of calls to the functions. I'm trying to avoid using kcachegrind, because I need to automate this process. We have tens of thousands of test cases we'll want to feed through this and requiring human interaction is thus bad. Josef Weidendorfer [mailto:Jos...@gm...] wrote: > Yes. Call counts are special. Aha. > --tree=caller shows the callers of each function, with the call > count in parenthesis. Yup, and that output looks a lot easier to parse than the full callgrind output. I have something odd in the output, though: I have a lot of calls to functions with names that I recognise, but which have a '2 appended to their names. These don't exist in the source: any idea what they signify? 8,658,501 < ???:read__list'2 (5826x) [kid.out] 128,976,260 < ???:read_sub_list'2 (158404x) [kid.out] 2,107 < ???:relax'2 (43x) [kid.out] 2,416,508 < ???:REL_gen_external'2 (437x) [kid.out] > Hmm. It should be easy to show the summed up call count for each > function also without callers/callee display. That would be nice if it could be added easily. thanks, everyone, -- John Dallman ----------------- Siemens Industry Software Limited is a limited company registered in England and Wales. Registered number: 3476850. Registered office: Faraday House, Sir William Siemens Square, Frimley, Surrey, GU16 8QD. |
|
From: Chris P. <jud...@gm...> - 2014-02-13 02:24:51
|
Hi, At $dayjob we maintain our own cross-toolchains (mostly plucked from gentoo linux). Out mips compiler ends up named "mipsbe-softfloat-linux-gnu" which fails the supported CPU test based on $host_cpu. I'm not sure how common the mipsbe thing is but I found a few references to it on various gcc mailing lists so I assume we're not the only ones. So here's a patch to update the configure test. Actually I thought by putting the mips64 stuff first we can collapse the mips32 tests into a single wildcard match. Both approaches fix my problem but the 2nd one is affects more platforms so might be a little more contentious. I'm posting this here because I didn't want to create an account on kde.org just to report a bug for which I already had a fix for. If you really a bugzilla report raised let me know. Cheers, Chris |
|
From: Josef W. <Jos...@gm...> - 2014-02-12 20:00:24
|
Am 12.02.2014 19:03, schrieb Philippe Waroquiers: > On Wed, 2014-02-12 at 17:00 +0000, Dallman, John wrote: >> That doesn't look as if there are any other events present, unless >> they're >> called something different. I realise I've jumped to the conclusion >> that >> calls are events, and this might not be true. Yes. Call counts are special. All "regular" events are listed after "events:" in the header of callgrind.out. >> I guess I can write something to digest the .out file and produce call >> counts from it. > Starting callgrind with default options, > and then using kcachegrind on the resulting callgrind.out file, > kcachegrind shows the nr of calls to the functions. > > callgrind_annotate --tree=both > seems also to give the nr of calls. --tree=caller shows the callers of each function, with the call count in parenthesis. Hmm. It should be easy to show the summed up call count for each function also without callers/callee display. Josef > > Philippe > > > > ------------------------------------------------------------------------------ > Android apps run on BlackBerry 10 > Introducing the new BlackBerry 10.2.1 Runtime for Android apps. > Now with support for Jelly Bean, Bluetooth, Mapview and more. > Get your Android app in front of a whole new audience. Start now. > http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk > _______________________________________________ > Valgrind-users mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-users > |
|
From: Josef W. <Jos...@gm...> - 2014-02-12 19:46:07
|
Am 12.02.2014 14:52, schrieb Dallman, John: > I'm looking at using callgrind to replace an expensive Windows coverage tool, > and for some other work where the ideas are only part-formed. > > The default callgrind run and callgrind_annonate display shows Ir events, but > I only need to count function entries. Is there a way to only collect those > and have callgrind run faster?? As Julian said, it does not get faster by not collecting Ir events, as without cache simulation, callgrind only counts how often basic blocks where executed. The important task of callgrind is to increment counters for (caller site/called function) tuples, to build the call graph. This often involves hash table lookups. If you are only interested in call counts of functions, a specific tool for that may be a lot faster: just increment a counter whenever a basic block is executed that represents a function entry. > callgrind_annotate has the --show option to only show specific events, but I > can't find a list of event names to feed it. Where should I be looking? Julian is right: callgrind_annotate just takes it from the callgrind output. Events for "--show" are events that always can be related to some code. In contrast to that, call counts relate to (from,to) tuples of code positions, and are handled special: they have no specific name. E.g. do a grep for "Ir" in the callgrind directory, and you will see the string "Ir" in sim.c. Depending on the mode callgrind is running in, different sets of event names are registered. Josef > To explain a bit, the reason I only need function entries is that we collect > coverage data on a per-function basis, for all our test cases, and then use > that to discover which test cases we need to run for changes to a given set > of functions. > > The other task consists of trying to find the most-called functions, because > on a different platform, I am having to use a compiler option that adds a > small constant overhead to some, but not all, functions. If I can discover > the most-called functions, I can then find out if they are having the overhead > added by the compiler, and then try to revise them so that the compiler no > longer needs to do that. > > thanks, > > -- > John Dallman > > ----------------- > Siemens Industry Software Limited is a limited company registered in England and Wales. > Registered number: 3476850. > Registered office: Faraday House, Sir William Siemens Square, Frimley, Surrey, GU16 8QD. > > ------------------------------------------------------------------------------ > Android apps run on BlackBerry 10 > Introducing the new BlackBerry 10.2.1 Runtime for Android apps. > Now with support for Jelly Bean, Bluetooth, Mapview and more. > Get your Android app in front of a whole new audience. Start now. > http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk > _______________________________________________ > Valgrind-users mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-users > |
|
From: Philippe W. <phi...@sk...> - 2014-02-12 18:03:13
|
On Wed, 2014-02-12 at 17:00 +0000, Dallman, John wrote: > That doesn't look as if there are any other events present, unless > they're > called something different. I realise I've jumped to the conclusion > that > calls are events, and this might not be true. > > I guess I can write something to digest the .out file and produce call > counts from it. Starting callgrind with default options, and then using kcachegrind on the resulting callgrind.out file, kcachegrind shows the nr of calls to the functions. callgrind_annotate --tree=both seems also to give the nr of calls. Philippe |
|
From: Dallman, J. <joh...@si...> - 2014-02-12 17:00:47
|
Julian Seward wrote: > I suspect not. In any case counting insns is not terribly expensive, > so the gain you'd get would be modest. OK. > I suspect the names are present in the callgrind.out file, and so > callgrind_annotate just slices out those that you list. It doesn't > itself know the names. But what part of the .c files of callgrind > generates the names, I have no idea. The only usage of the word "event" in the callgrind.out file, apart from the names of functions that happen to include "event", is in the header: $ more callgrind.out.xyz version: 1 creator: callgrind-3.8.1 pid: 7926 cmd: xxxx.xxx part: 1 desc: I1 cache: desc: D1 cache: desc: LL cache: desc: Timerange: Basic block 0 - 699103124 desc: Trigger: Program termination positions: line events: Ir summary: 4496324814 ob=(2) ??? fl=(2) ??? fn=(302) 0x00000000053fecd8 0 2 cob=(8) /lib64/libdl-2.11.1.so cfi=(8) ??? cfn=(304) 0x0000000000000df0 calls=1 0 ... That doesn't look as if there are any other events present, unless they're called something different. I realise I've jumped to the conclusion that calls are events, and this might not be true. I guess I can write something to digest the .out file and produce call counts from it. thanks, -- John Dallman ----------------- Siemens Industry Software Limited is a limited company registered in England and Wales. Registered number: 3476850. Registered office: Faraday House, Sir William Siemens Square, Frimley, Surrey, GU16 8QD. |
|
From: Julian S. <js...@ac...> - 2014-02-12 16:56:22
|
(guessing at both questions; JosefW would know for definite) > The default callgrind run and callgrind_annonate display shows Ir events, but > I only need to count function entries. Is there a way to only collect those > and have callgrind run faster?? I suspect not. In any case counting insns is not terribly expensive, so the gain you'd get would be modest. > callgrind_annotate has the --show option to only show specific events, but I > can't find a list of event names to feed it. Where should I be looking? I suspect the names are present in the callgrind.out file, and so callgrind_annotate just slices out those that you list. It doesn't itself know the names. But what part of the .c files of callgrind generates the names, I have no idea. J |
|
From: Dallman, J. <joh...@si...> - 2014-02-12 13:53:21
|
I'm looking at using callgrind to replace an expensive Windows coverage tool, and for some other work where the ideas are only part-formed. The default callgrind run and callgrind_annonate display shows Ir events, but I only need to count function entries. Is there a way to only collect those and have callgrind run faster?? callgrind_annotate has the --show option to only show specific events, but I can't find a list of event names to feed it. Where should I be looking? To explain a bit, the reason I only need function entries is that we collect coverage data on a per-function basis, for all our test cases, and then use that to discover which test cases we need to run for changes to a given set of functions. The other task consists of trying to find the most-called functions, because on a different platform, I am having to use a compiler option that adds a small constant overhead to some, but not all, functions. If I can discover the most-called functions, I can then find out if they are having the overhead added by the compiler, and then try to revise them so that the compiler no longer needs to do that. thanks, -- John Dallman ----------------- Siemens Industry Software Limited is a limited company registered in England and Wales. Registered number: 3476850. Registered office: Faraday House, Sir William Siemens Square, Frimley, Surrey, GU16 8QD. |
|
From: Philippe W. <phi...@sk...> - 2014-02-11 20:32:40
|
On Tue, 2014-02-11 at 07:22 +0000, David Carter wrote: > Hi Philippe, > > Thanks for your suggestions, I have got the first part of the > information. It seems there is some contention over locale > resources. Do you agree? Well, difficult to say without looking more in depth at the code. Taking into account that there are threads still running, that the valgrind trace shows that threads are being scheduled, I guess the problem is linked to the application, not to valgrind. It looks to me that the easiest would be to have a way to debug the application, trying e.g. a newer gdb and vgdb (if the newer gdb supports the strange executable format). Alternatively, just make a normal executable :). At this stage, not much can be done from Valgrind side I am afraid. Philippe |
|
From: Kalkere, Giridhara(IE10) <Gir...@Ho...> - 2014-02-11 10:36:24
|
Hello, Warm Greetings...! I am new to this mailing list. I am trying to use the valgrind with ARM1136 which is ARM V6 processor running linux 2.6.31 and I couldn't able to compile it for this target. I googled for half a day and found lots of people are facing similar issues. They couldnot able to use it with ARM V6. I would be great if anybody can write what's the problem behind using it on ARM V6. Thanks and Regards, Giri |
|
From: Tom H. <to...@co...> - 2014-02-11 09:50:46
|
On 11/02/14 09:45, Jeffrey Walton wrote: > On Tue, Feb 11, 2014 at 4:11 AM, Tom Hughes <to...@co...> wrote: >> On 11/02/14 08:38, Jeffrey Walton wrote: >> >>> Perhpas a --cpu=XXX switch would be helpful for switching between >>> cpu's. (Forgive me if its non-trivial to do. I know nothing about >>> Valgrind architecture or operation. I just know a bit about using it >>> to hunt leaks). >> >> >> There's no point us allowing you to request a CPUID that reports RDRAND >> support if valgrind is going to bomb out with an unsupported instruction >> error as soon as you try and execute it. > RDRAND is easy - back it with /dev/urand. I wasn't saying it couldn't be implemented, just that it's not as simple as just changing what CPUID reports, which seemed to be what you were suggesting. If we supported RDRAND then we would just announce it in CPUID and you wouldn't need a --cpu flag. > AES-NI seems to be the difficult one, and I'm surprised Valgrind > reports its supported. It's probably done via a helper so it effectively gets passed through. Tom -- Tom Hughes (to...@co...) http://compton.nu/ |
|
From: Jeffrey W. <nol...@gm...> - 2014-02-11 09:45:26
|
On Tue, Feb 11, 2014 at 4:11 AM, Tom Hughes <to...@co...> wrote: > On 11/02/14 08:38, Jeffrey Walton wrote: > >> Perhpas a --cpu=XXX switch would be helpful for switching between >> cpu's. (Forgive me if its non-trivial to do. I know nothing about >> Valgrind architecture or operation. I just know a bit about using it >> to hunt leaks). > > > There's no point us allowing you to request a CPUID that reports RDRAND > support if valgrind is going to bomb out with an unsupported instruction > error as soon as you try and execute it. > RDRAND is easy - back it with /dev/urand. AES-NI seems to be the difficult one, and I'm surprised Valgrind reports its supported. Jeff |
|
From: Tom H. <to...@co...> - 2014-02-11 09:12:03
|
On 11/02/14 08:38, Jeffrey Walton wrote: > Perhpas a --cpu=XXX switch would be helpful for switching between > cpu's. (Forgive me if its non-trivial to do. I know nothing about > Valgrind architecture or operation. I just know a bit about using it > to hunt leaks). There's no point us allowing you to request a CPUID that reports RDRAND support if valgrind is going to bomb out with an unsupported instruction error as soon as you try and execute it. Tom -- Tom Hughes (to...@co...) http://compton.nu/ |
|
From: Jeffrey W. <nol...@gm...> - 2014-02-11 08:38:53
|
Thanks John. > A quick search of the web for "valgrind CPUID" will fill in the details. For https://bugs.kde.org/show_bug.cgi?id=155528, does Valgrind want the output for an i5 so it can fake an i5? I use Ivy Bridge i5's specifically for AES-NI and RDRAND. Perhpas a --cpu=XXX switch would be helpful for switching between cpu's. (Forgive me if its non-trivial to do. I know nothing about Valgrind architecture or operation. I just know a bit about using it to hunt leaks). Jeff On Mon, Feb 10, 2014 at 10:43 PM, John Reiser <jr...@bi...> wrote: > On 02/10/2014 03:35 PM, Jeffrey Walton wrote: >> I've got some code that determines CPU capabilities for x86 >> processors. I'm interested in RDRAND and AESNI, and I use three >> functions to determine the capabilities: HasIntel(), HasAESNI() and >> HasRDRAND(). >> >> Debug configurations compiled with GCC and Clang work fine. Release >> configuration compiled with GCC and Clang work fine. >> >> However, I get *one* incorrect result when running under Valgrind. The >> incorrect result is from HasRDRAND(). Under Valgrind, the result is 0, >> which means RDRAND is not available. > > Valgrind deliberately "fakes" the results of CPUID so that the bits > reflect the virtual machine that valgrind knows how to support. > Valgrind does not know how to implement RDRAND. > [Only Intel and very few others know *exactly* what RDRAND does.] > A quick search of the web for "valgrind CPUID" will fill in the details. > It's even documented: search for 'CPUID' or 'SSE2' in and below > the docs/ directory of the source tree. > |
|
From: jianan hu <huj...@gm...> - 2014-02-11 04:17:48
|
Hi everyone,
I tried to use lackey to record every memory access made by program. I
wrote very simple Hello Word program and used lackey to trace.
Unfortunately, lackey couldn't finish this job and I got very huge log file
(>100M) so I had to stop it.
After checked log file, lackey recorded a lot of following repeat
information:
I 04853198,2
I 0485319a,2
I 0485319c,4
S 0490c0bc,4
I 048531a0,4
I 048531a4,2
I 04853194,4
L 0490c0bc,4
I 04853198,2
I 0485319a,2
I 0485319c,4
S 0490c0bc,4
I 048531a0,4
I 048531a4,2
I 04853194,4
L 0490c0bc,4
My environment:
uname -r : 3.9.0-1-linaro-omap
Pandaboard ES, I also checked on OMAP 5432 Evm Board.
Steps to Reproduce:
Setp 1. Write test.c
#include <stdio.h>
int main()
{
printf("Hello\n");
return 0;
}
Step 2. Compile program.
arm-linux-gnueabihf-gcc ./test.c
Step 3. valgrind --log-file="log.txt" --tool=lackey --trace-mem=yes ./a.out
After checked the code (lk_main.c), I found that the problem may be dirty
helper. I only call addStmtToIRSB when "ev->addr->tag" is "Iex_RdTmp",
Endless loop never happens.
I modified the "addStmtToIRSB( sb, IRStmt_Dirty(di) );" (in flushEvents
function) code into following codes:
switch (ev->addr->tag) {
case Iex_Const:
VG_(printf)("L %08lx\n", ev->addr->Iex.Const.con->Ico.U32);
break;
case Iex_RdTmp:
addStmtToIRSB( sb, IRStmt_Dirty(di) );
VG_(printf)("Iex_RdTmp %lu\n", ev->addr->Iex.RdTmp.tmp);
break;
}
Does anyone can help me? Thanks!
Best Regards.
|
|
From: John R. <jr...@Bi...> - 2014-02-11 03:43:14
|
On 02/10/2014 03:35 PM, Jeffrey Walton wrote: > I've got some code that determines CPU capabilities for x86 > processors. I'm interested in RDRAND and AESNI, and I use three > functions to determine the capabilities: HasIntel(), HasAESNI() and > HasRDRAND(). > > Debug configurations compiled with GCC and Clang work fine. Release > configuration compiled with GCC and Clang work fine. > > However, I get *one* incorrect result when running under Valgrind. The > incorrect result is from HasRDRAND(). Under Valgrind, the result is 0, > which means RDRAND is not available. Valgrind deliberately "fakes" the results of CPUID so that the bits reflect the virtual machine that valgrind knows how to support. Valgrind does not know how to implement RDRAND. [Only Intel and very few others know *exactly* what RDRAND does.] A quick search of the web for "valgrind CPUID" will fill in the details. It's even documented: search for 'CPUID' or 'SSE2' in and below the docs/ directory of the source tree. -- |
|
From: Jeffrey W. <nol...@gm...> - 2014-02-10 23:36:05
|
I've got some code that determines CPU capabilities for x86 processors. I'm interested in RDRAND and AESNI, and I use three functions to determine the capabilities: HasIntel(), HasAESNI() and HasRDRAND(). Debug configurations compiled with GCC and Clang work fine. Release configuration compiled with GCC and Clang work fine. However, I get *one* incorrect result when running under Valgrind. The incorrect result is from HasRDRAND(). Under Valgrind, the result is 0, which means RDRAND is not available. I think its related to "Valgrind shows different results for ubuntu and debian x86 cpuid implementations", http://sourceforge.net/mailarchive/message.php?msg_id=31873412. Can anyone confirm this is related to VEX virtual machine? I want to ensure I'm not seeing success in Debug and Release by dumb-luck (and possibly have an unforeseen problem to fix). Thanks in advance. ********** # Debian 7.3, x64, fully patched $ uname -a Linux debian-q500 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 GNU/Linux # Built from sources a couple of weeks ago $ valgrind --version valgrind-3.9.0 ********** static void get_cpuid_info(CPUIDinfo *info, const unsigned int func, const unsigned int subfunc) { LogDebug("get_cpuid_info"); UNUSED(info); UNUSED(func); UNUSED(subfunc); __asm__ __volatile__ ( "cpuid" : "=a"(info->EAX), "=b"(info->EBX), "=c"(info->ECX), "=d"(info->EDX) : "a"(func), "c"(subfunc) ); } int HasIntel() { static int intel_cpu = 0; static once_flag flag; call_once(flag, []() { CPUIDinfo info; get_cpuid_info(&info,0,0); if(memcmp((char *)(&info.EBX), "Genu", 4) == 0 && memcmp((char *)(&info.EDX), "ineI", 4) == 0 && memcmp((char *)(&info.ECX), "ntel", 4) == 0) { intel_cpu = 1; } }); return intel_cpu; } int HasRDRAND() { static volatile int has_rdrand = 0; static once_flag flag; call_once(flag, []() { if(HasIntel()) { CPUIDinfo info; static const unsigned int RDRAND_CAP_BIT = (1 << 30); AC_ASSERT(0x40000000 == RDRAND_CAP_BIT); get_cpuid_info(&info,1,0); if ((info.ECX & RDRAND_CAP_BIT)==RDRAND_CAP_BIT) has_rdrand = 1; } }); return has_rdrand; } int HasAESNI() { static volatile int has_aesni = 0; static once_flag flag; call_once(flag, []() { if(HasIntel()) { CPUIDinfo info; static const unsigned int AESNI_CAP_BIT = (1 << 25); AC_ASSERT(0x2000000 == AESNI_CAP_BIT); get_cpuid_info(&info,1,0); if ((info.ECX & AESNI_CAP_BIT)==AESNI_CAP_BIT) has_aesni = 1; } }); return has_aesni; } |
|
From: Christoph N. <nie...@hl...> - 2014-02-10 23:08:33
|
Hello, For gcc you may have a look onto the -march and -mtune options in the man pages to restrict the generated instruction set to an older CPU type. Your i7 may be detected as corei7-avx while your i3 may be detected as an older type. There are also a lot of options to selectively disable specific features, e.g. -mno-avx2, -mno-sse4.2, ... in the man pages. Regards Christoph Niethammer -- Christoph Niethammer High Performance Computing Center Stuttgart (HLRS) Nobelstrasse 19 70569 Stuttgart Tel: ++49(0)711-685-87203 email: nie...@hl... http://www.hlrs.de/people/niethammer ----- Ursprüngliche Mail ----- Von: "Brian Budge" <bri...@gm...> An: "Adam.Jirasek" <ada...@gm...> CC: val...@li... Gesendet: Freitag, 7. Februar 2014 23:43:11 Betreff: Re: [Valgrind-users] Intel i3 vs.Intel I7 - unhandled instruction bytes: 0xC4 0xC2 0x79 0xF7 0xC9 0x89 0x45 0x80 On Fri, Feb 7, 2014 at 3:28 PM, Adam.Jirasek <ada...@gm...> wrote: > Hello > > I have a C program which I routinely test with valgrind. > The platform is Intel i3 dual core, gcc-4.7.3. and for all my tests > valgrind did not give any warning when I started my program > > > Now I updated to a new computer > Intel i7 4th generation, gcc-4.7.3 and when I start valgrind with my > code I get: > > valgrind --tool=memcheck --trace-children=yes > --vex-iropt-register-updates=allregs-at-mem-access --leak-check=full > --leak-resolution=high --show-reachable=yes --track-origins=yes > ../../Source/Server_Main.out --port 31000 --input_file > Definition_File_PDT_Modes --show > ==28771== Memcheck, a memory error detector > ==28771== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al. > ==28771== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info > ==28771== Command: ../../Source/Server_Main.out --port 31000 > --input_file Definition_File_PDT_Modes --show > ==28771== > vex amd64->IR: unhandled instruction bytes: 0xC4 0xC2 0x79 0xF7 0xC9 > 0x89 0x45 0x80 > vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=1 > vex amd64->IR: VEX=1 VEX.L=0 VEX.nVVVV=0x0 ESC=0F38 > vex amd64->IR: PFX.66=1 PFX.F2=0 PFX.F3=0 > ==28771== valgrind: Unrecognised instruction at address 0x400da4b. > ==28771== at 0x400DA4B: _dl_important_hwcaps (in /lib64/ld-2.17.so) > ==28771== by 0x4007D8E: _dl_init_paths (in /lib64/ld-2.17.so) > ==28771== by 0x4003128: dl_main (in /lib64/ld-2.17.so) > ==28771== by 0x40152E7: _dl_sysdep_start (in /lib64/ld-2.17.so) > ==28771== by 0x4004EA4: _dl_start (in /lib64/ld-2.17.so) > ==28771== by 0x4001647: ??? (in /lib64/ld-2.17.so) > ==28771== by 0x5: ??? > ==28771== by 0x7FF000056: ??? > ==28771== by 0x7FF000073: ??? > ==28771== by 0x7FF00007A: ??? > ==28771== by 0x7FF000080: ??? > ==28771== by 0x7FF00008D: ??? > ==28771== Your program just tried to execute an instruction that Valgrind > ==28771== did not recognise. There are two possible reasons for this. > ==28771== 1. Your program has a bug and erroneously jumped to a non-code > ==28771== location. If you are running Memcheck and you just saw a > ==28771== warning about a bad jump, it's probably your program's fault. > ==28771== 2. The instruction is legitimate but Valgrind doesn't handle it, > ==28771== i.e. it's Valgrind's fault. If you think this is the case or > ==28771== you are not sure, please let us know and we'll try to fix it. > ==28771== Either way, Valgrind will now raise a SIGILL signal which will > ==28771== probably kill your program. > ==28771== > ==28771== Process terminating with default action of signal 4 (SIGILL) > ==28771== Illegal opcode at address 0x400DA4B > ==28771== at 0x400DA4B: _dl_important_hwcaps (in /lib64/ld-2.17.so) > ==28771== by 0x4007D8E: _dl_init_paths (in /lib64/ld-2.17.so) > ==28771== by 0x4003128: dl_main (in /lib64/ld-2.17.so) > ==28771== by 0x40152E7: _dl_sysdep_start (in /lib64/ld-2.17.so) > ==28771== by 0x4004EA4: _dl_start (in /lib64/ld-2.17.so) > ==28771== by 0x4001647: ??? (in /lib64/ld-2.17.so) > ==28771== by 0x5: ??? > ==28771== by 0x7FF000056: ??? > ==28771== by 0x7FF000073: ??? > ==28771== by 0x7FF00007A: ??? > ==28771== by 0x7FF000080: ??? > ==28771== by 0x7FF00008D: ??? > ==28771== > ==28771== HEAP SUMMARY: > ==28771== in use at exit: 0 bytes in 0 blocks > ==28771== total heap usage: 0 allocs, 0 frees, 0 bytes allocated > ==28771== > ==28771== All heap blocks were freed -- no leaks are possible > ==28771== > ==28771== For counts of detected and suppressed errors, rerun with: -v > ==28771== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) > Illegal instruction > > > > Any advice what my be causing such a warning? > Yes, you've emitted an instruction that valgrind does not handle. Searching for the same instruction string on google, I found that there was already a bug filed for this. You can try limiting your instruction set when you compile. I do not know exactly what instruction this is, but if you can determine that, you can try to get the compiler not to emit it. I notice that you're also running valgrind that only has copyright up to 2012. Maybe try the latest version? Brian ------------------------------------------------------------------------------ Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk _______________________________________________ Valgrind-users mailing list Val...@li... https://lists.sourceforge.net/lists/listinfo/valgrind-users |
|
From: Mark W. <mj...@re...> - 2014-02-10 12:10:19
|
Hi all, Thanks for all you who came to Valgrind devroom at FOSDEM. I think the interest in the talks surprised us all. We had to turn away some people at some talks because the room was just full. For those who missed it most slides are attached to the talk pages listed at: https://fosdem.org/2014/schedule/track/valgrind/ (only the SimuVEX one is still missing). We also did try to record videos of the talks, but that wasn't a great success. We were missing a firewire cable at the start, so couldn't record anything. Then when we did get that cable the audio was really bad/silent. Sorry about that. The FOSDEM video staff is trying to rescue what is possible. If they are able to, the videos will turn up at: http://video.fosdem.org/2014/ (we were in K4201 on Sunday - which currently doesn't have any videos yet). Lesson learned for next time: - If we are doing video recordings we really need to find someone that is dedicated to doing that instead of having someone do it on the side. The FOSDEM staff offered a little training beforehand, but nobody had time to attend that training. - We had a relaxed schedule with some extra "free" time so people could get some lunch and drinks in between. But that did mean some talks had not enough time allocated for them (25 minutes really isn't that much). And we did run out of time during the last BoF session. We should allocate a bit more time per talk if possible (or at least warn that 25 minutes is too short for both a talk and a demo), and instead of a BoF with lots of small issues we should push for some lightning talks (mini BoFs) in between the larger talks. Maybe combined with a BoF at the end to use some more time for lightning subjects that could use some more discussion. - We really should organize some social get together before/after the technical talks. Just pick a pub for drinks or a restaurant for dinner to meet up. Thanks, Mark |
|
From: Brian B. <bri...@gm...> - 2014-02-07 22:43:17
|
On Fri, Feb 7, 2014 at 3:28 PM, Adam.Jirasek <ada...@gm...> wrote: > Hello > > I have a C program which I routinely test with valgrind. > The platform is Intel i3 dual core, gcc-4.7.3. and for all my tests > valgrind did not give any warning when I started my program > > > Now I updated to a new computer > Intel i7 4th generation, gcc-4.7.3 and when I start valgrind with my > code I get: > > valgrind --tool=memcheck --trace-children=yes > --vex-iropt-register-updates=allregs-at-mem-access --leak-check=full > --leak-resolution=high --show-reachable=yes --track-origins=yes > ../../Source/Server_Main.out --port 31000 --input_file > Definition_File_PDT_Modes --show > ==28771== Memcheck, a memory error detector > ==28771== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al. > ==28771== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info > ==28771== Command: ../../Source/Server_Main.out --port 31000 > --input_file Definition_File_PDT_Modes --show > ==28771== > vex amd64->IR: unhandled instruction bytes: 0xC4 0xC2 0x79 0xF7 0xC9 > 0x89 0x45 0x80 > vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=1 > vex amd64->IR: VEX=1 VEX.L=0 VEX.nVVVV=0x0 ESC=0F38 > vex amd64->IR: PFX.66=1 PFX.F2=0 PFX.F3=0 > ==28771== valgrind: Unrecognised instruction at address 0x400da4b. > ==28771== at 0x400DA4B: _dl_important_hwcaps (in /lib64/ld-2.17.so) > ==28771== by 0x4007D8E: _dl_init_paths (in /lib64/ld-2.17.so) > ==28771== by 0x4003128: dl_main (in /lib64/ld-2.17.so) > ==28771== by 0x40152E7: _dl_sysdep_start (in /lib64/ld-2.17.so) > ==28771== by 0x4004EA4: _dl_start (in /lib64/ld-2.17.so) > ==28771== by 0x4001647: ??? (in /lib64/ld-2.17.so) > ==28771== by 0x5: ??? > ==28771== by 0x7FF000056: ??? > ==28771== by 0x7FF000073: ??? > ==28771== by 0x7FF00007A: ??? > ==28771== by 0x7FF000080: ??? > ==28771== by 0x7FF00008D: ??? > ==28771== Your program just tried to execute an instruction that Valgrind > ==28771== did not recognise. There are two possible reasons for this. > ==28771== 1. Your program has a bug and erroneously jumped to a non-code > ==28771== location. If you are running Memcheck and you just saw a > ==28771== warning about a bad jump, it's probably your program's fault. > ==28771== 2. The instruction is legitimate but Valgrind doesn't handle it, > ==28771== i.e. it's Valgrind's fault. If you think this is the case or > ==28771== you are not sure, please let us know and we'll try to fix it. > ==28771== Either way, Valgrind will now raise a SIGILL signal which will > ==28771== probably kill your program. > ==28771== > ==28771== Process terminating with default action of signal 4 (SIGILL) > ==28771== Illegal opcode at address 0x400DA4B > ==28771== at 0x400DA4B: _dl_important_hwcaps (in /lib64/ld-2.17.so) > ==28771== by 0x4007D8E: _dl_init_paths (in /lib64/ld-2.17.so) > ==28771== by 0x4003128: dl_main (in /lib64/ld-2.17.so) > ==28771== by 0x40152E7: _dl_sysdep_start (in /lib64/ld-2.17.so) > ==28771== by 0x4004EA4: _dl_start (in /lib64/ld-2.17.so) > ==28771== by 0x4001647: ??? (in /lib64/ld-2.17.so) > ==28771== by 0x5: ??? > ==28771== by 0x7FF000056: ??? > ==28771== by 0x7FF000073: ??? > ==28771== by 0x7FF00007A: ??? > ==28771== by 0x7FF000080: ??? > ==28771== by 0x7FF00008D: ??? > ==28771== > ==28771== HEAP SUMMARY: > ==28771== in use at exit: 0 bytes in 0 blocks > ==28771== total heap usage: 0 allocs, 0 frees, 0 bytes allocated > ==28771== > ==28771== All heap blocks were freed -- no leaks are possible > ==28771== > ==28771== For counts of detected and suppressed errors, rerun with: -v > ==28771== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) > Illegal instruction > > > > Any advice what my be causing such a warning? > Yes, you've emitted an instruction that valgrind does not handle. Searching for the same instruction string on google, I found that there was already a bug filed for this. You can try limiting your instruction set when you compile. I do not know exactly what instruction this is, but if you can determine that, you can try to get the compiler not to emit it. I notice that you're also running valgrind that only has copyright up to 2012. Maybe try the latest version? Brian |
|
From: Tom H. <to...@co...> - 2014-02-07 22:39:43
|
On 07/02/14 23:28, Adam.Jirasek wrote: > vex amd64->IR: unhandled instruction bytes: 0xC4 0xC2 0x79 0xF7 0xC9 > 0x89 0x45 0x80 > vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=1 > vex amd64->IR: VEX=1 VEX.L=0 VEX.nVVVV=0x0 ESC=0F38 > vex amd64->IR: PFX.66=1 PFX.F2=0 PFX.F3=0 So you're trying to execute an instruction that we don't support. Actually though, that is an AVX encoded SHLX instruction, which we do support in the current release, so you just need to upgrade. Alternatively, just don't compile with -march=native but rather choose some older processor to target. > Any advice what my be causing such a warning? It's not a warning, it's a hard error ;-) Tom -- Tom Hughes (to...@co...) http://compton.nu/ |
|
From: Adam.Jirasek <ada...@gm...> - 2014-02-07 22:18:07
|
Hello I have a C program which I routinely test with valgrind. The platform is Intel i3 dual core, gcc-4.7.3. and for all my tests valgrind did not give any warning when I started my program Now I updated to a new computer Intel i7 4th generation, gcc-4.7.3 and when I start valgrind with my code I get: valgrind --tool=memcheck --trace-children=yes --vex-iropt-register-updates=allregs-at-mem-access --leak-check=full --leak-resolution=high --show-reachable=yes --track-origins=yes ../../Source/Server_Main.out --port 31000 --input_file Definition_File_PDT_Modes --show ==28771== Memcheck, a memory error detector ==28771== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al. ==28771== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info ==28771== Command: ../../Source/Server_Main.out --port 31000 --input_file Definition_File_PDT_Modes --show ==28771== vex amd64->IR: unhandled instruction bytes: 0xC4 0xC2 0x79 0xF7 0xC9 0x89 0x45 0x80 vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=1 vex amd64->IR: VEX=1 VEX.L=0 VEX.nVVVV=0x0 ESC=0F38 vex amd64->IR: PFX.66=1 PFX.F2=0 PFX.F3=0 ==28771== valgrind: Unrecognised instruction at address 0x400da4b. ==28771== at 0x400DA4B: _dl_important_hwcaps (in /lib64/ld-2.17.so) ==28771== by 0x4007D8E: _dl_init_paths (in /lib64/ld-2.17.so) ==28771== by 0x4003128: dl_main (in /lib64/ld-2.17.so) ==28771== by 0x40152E7: _dl_sysdep_start (in /lib64/ld-2.17.so) ==28771== by 0x4004EA4: _dl_start (in /lib64/ld-2.17.so) ==28771== by 0x4001647: ??? (in /lib64/ld-2.17.so) ==28771== by 0x5: ??? ==28771== by 0x7FF000056: ??? ==28771== by 0x7FF000073: ??? ==28771== by 0x7FF00007A: ??? ==28771== by 0x7FF000080: ??? ==28771== by 0x7FF00008D: ??? ==28771== Your program just tried to execute an instruction that Valgrind ==28771== did not recognise. There are two possible reasons for this. ==28771== 1. Your program has a bug and erroneously jumped to a non-code ==28771== location. If you are running Memcheck and you just saw a ==28771== warning about a bad jump, it's probably your program's fault. ==28771== 2. The instruction is legitimate but Valgrind doesn't handle it, ==28771== i.e. it's Valgrind's fault. If you think this is the case or ==28771== you are not sure, please let us know and we'll try to fix it. ==28771== Either way, Valgrind will now raise a SIGILL signal which will ==28771== probably kill your program. ==28771== ==28771== Process terminating with default action of signal 4 (SIGILL) ==28771== Illegal opcode at address 0x400DA4B ==28771== at 0x400DA4B: _dl_important_hwcaps (in /lib64/ld-2.17.so) ==28771== by 0x4007D8E: _dl_init_paths (in /lib64/ld-2.17.so) ==28771== by 0x4003128: dl_main (in /lib64/ld-2.17.so) ==28771== by 0x40152E7: _dl_sysdep_start (in /lib64/ld-2.17.so) ==28771== by 0x4004EA4: _dl_start (in /lib64/ld-2.17.so) ==28771== by 0x4001647: ??? (in /lib64/ld-2.17.so) ==28771== by 0x5: ??? ==28771== by 0x7FF000056: ??? ==28771== by 0x7FF000073: ??? ==28771== by 0x7FF00007A: ??? ==28771== by 0x7FF000080: ??? ==28771== by 0x7FF00008D: ??? ==28771== ==28771== HEAP SUMMARY: ==28771== in use at exit: 0 bytes in 0 blocks ==28771== total heap usage: 0 allocs, 0 frees, 0 bytes allocated ==28771== ==28771== All heap blocks were freed -- no leaks are possible ==28771== ==28771== For counts of detected and suppressed errors, rerun with: -v ==28771== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Illegal instruction Any advice what my be causing such a warning? Thanks -- Adam Jirasek Email: ada...@gm... |
|
From: Philippe W. <phi...@sk...> - 2014-02-07 20:43:56
|
On Wed, 2014-02-05 at 18:17 -0500, Jeffrey Walton wrote: > On Wed, Feb 5, 2014 at 6:06 PM, Tom Hughes <to...@co...> wrote: > > On 05/02/14 23:00, Jeffrey Walton wrote: > > > >> Well, I'm not sure how to proceed since RAND_init_fips is the linchpin. > >> > >> A call to ... -> RAND_init_fips -> ... -> fips_aes_encrypt is OK. > >> > >> A call to ... -> AES_encrypt -> ... -> fips_aes_encrypt is BAD. > >> > >> I'm fairly certain I need to include RAND_init_fips to rule out a > >> legitimate uninitialized read, but I'm not sure how to do it. > >> > >> Any ideas how to craft this rule? > > > > > > You can't. There is no way to write a suppression which says "don't worry > > about reads from the memory that was allocated at location X" which is what > > you are tryng to do. > Thanks Tom. That's not the answer I wanted :) > > Jeff Note that I believe we already had multiple requests to have suppression entries which could match the "two" stacktraces of a reported error, e.g. for the case you present, but also for the helgrind errors, which also typically have more two stacktraces. So, you might enter an entry in bugzilla (with severy wish :) and hope someone is interested to work on that. Philippe |