You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
1
(3) |
2
|
3
|
4
|
|
5
(13) |
6
(2) |
7
(5) |
8
(4) |
9
(3) |
10
(4) |
11
(4) |
|
12
(7) |
13
|
14
(1) |
15
|
16
|
17
(2) |
18
|
|
19
|
20
|
21
(3) |
22
(8) |
23
(7) |
24
(5) |
25
(4) |
|
26
(6) |
27
|
28
(9) |
29
|
30
(4) |
31
(5) |
|
|
From: Nicholas N. <n.n...@gm...> - 2023-03-23 10:51:44
|
On Thu, 23 Mar 2023 at 20:15, Mark Wielaard <ma...@kl...> wrote: > > Modulo using github these sound like interesting ideas. Forcing this > workflow might be a bit heavy weight. But we could use sourceware > try-branches so all commits go through the CI builders. Requiring all > passing builds will be a bit of a puzzle since out testsuite(s) aren't > zero-fail. > I threw a lot of ideas out in my earlier email, but this is the most important one. Graydon Hoare expressed <https://graydon2.dreamwidth.org/1597.html> this years ago as: *The Not Rocket Science Rule Of Software Engineering:* > automatically maintain a repository of code that always passes all the > tests > This requires that all the tests pass before merging a change. Having worked on projects that follow this and projects that don't, I say with confidence that it's a good idea. If we could get that happening for Valgrind, that alone would be a huge improvement over the status quo. I looked at the sites you linked, but couldn't work out much about how they work. W.r.t. failing tests, this would give great incentive to fix currently failing tests (or disable them if they cannot be made reliable) and to keep them passing. Sourceware builder could help with that, we can setup a CI bot that > runs such a formatter over all commits to check formatting. I have > seen that work very nicely with the python black formatter. But for C > code/clang-format it seems the formatter seems not that good/stable. > Mozilla's been using clang-format for Firefox C and C++ code for several years. Nick |
|
From: Mark W. <ma...@kl...> - 2023-03-23 09:15:18
|
Hi Nick, On Thu, Mar 23, 2023 at 10:08:51AM +1100, Nicholas Nethercote wrote: > All the Rust projects I work on use GitHub, and in terms of usability and > productivity it's miles ahead of how Valgrind development works. I think github is unacceptable for Free Software projects, which I believe should use free software tools and not a corporate controlled proprietary platform: https://mako.cc/writing/hill-free_tools.html https://giveupgithub.com/ But that doesn't mean I don't agree with you. There are some really nice concepts in these "code forges". And there are free software implementations like https://codeberg.org/ https://docs.pagure.org/pagure/ https://sourcehut.org/ and (self managed) gitlab ce. valgrind already has an official mirror on sourcehut (like all other sourceware projects): https://sr.ht/~sourceware/valgrind/ > If I were king of the world here's how I would drag Valgrind's development > practices forward by 10-20 years. > > - Move the repository to GitHub. Require all changes to be done via pull > requests, with no direct pushing. > - Set up some CI testing via GitHub Actions. Require that all pull > requests pass these tests before merging. > - Lots of projects require a review approval before a pull request can > be merged. But that might be too hard for Valgrind to start with, given the > small number of active contributors. Modulo using github these sound like interesting ideas. Forcing this workflow might be a bit heavy weight. But we could use sourceware try-branches so all commits go through the CI builders. Requiring all passing builds will be a bit of a puzzle since out testsuite(s) aren't zero-fail. > - Switch from KDE bugzilla to GitHub issues for bug reporting. Not sure > what I'd do with existing open bug reports, whether it would be worth > importing them to GitHub issues somehow or not. I would consider moving to sourceware bugzilla, which would make it easier to connect commits/patches with issues. The downside is that all bugs get renumbered. What benefit do you see from GitHub issues over bugzilla? > - Use auto-formatting tools, such as clang-format. (Possibly even moving > from 3 space indents in C code to 2 or 4!) Sourceware builder could help with that, we can setup a CI bot that runs such a formatter over all commits to check formatting. I have seen that work very nicely with the python black formatter. But for C code/clang-format it seems the formatter seems not that good/stable. > - Change the docs from that XML-based thing we use (groan) to something > nicer, probably involving Markdown. Not against, but a lot of work. And with the make check xml linter checks writing new docs has become a lot nicer. We should however setup a buildbot to always create the docs on each commit. > - Website: not sure... a lot of it could be naturally hosted on the main > GitHub page. It might be nice to still have valgrind.org, though, but > perhaps greatly stripped back. What would you propose? The website is in git now, but uses php for a few things. https://sourceware.org/cgit/valgrind-htdocs we could drop the php and replace it with a more simpler markdown based site? Cheers, Mark |
|
From: Nicholas N. <n.n...@gm...> - 2023-03-23 08:51:15
|
Nice, I wasn't aware of any of those facilities. Are they documented anywhere, both their existence and how to use them? I couldn't find anything on valgrind.org about them, but maybe I overlooked something. Nick On Thu, 23 Mar 2023 at 19:45, Mark Wielaard <ma...@kl...> wrote: > Hi Nick, > > On Thu, Mar 23, 2023 at 07:31:47AM +1100, Nicholas Nethercote wrote: > > Thanks to Paul and Mark for a couple of small fixes to my commit. > > Thank you for the big fixes/rewrite! > > > Yesterday I was idly dreaming about the quality-of-life improvements that > > would be available if Valgrind was hosted on GitHub: > > - ability to upload commits ahead of time, in a fashion nicer than > "attach > > patch to bugzilla" > > - ability to do reviews > > - CI support for pre-merge testing runs > > - easier entry for newcomers > > > > Does sourceware.org have support for any of these things? > > Yes, sourceware offers patchwork.sourceware.org (in combination with > public-inbox support) which can be used for patch tracking and can be > configured to do pre-commit CI. And through builder.sourceware.org you > can do builds for "try branches". > > Note that valgrind already is using the sourceware CI for arm64, > armhf, i386, ppc64, ppc64le, power10, power9, x86_64 on some gnu/linux > distros: > https://builder.sourceware.org/buildbot/#/builders?tags=valgrind > > And there are of course the nightly builders which report to > valgrind-testresults: > https://sourceforge.net/p/valgrind/mailman/valgrind-testresults/ > > We have been pondering moving bugzilla and the mailinglists to > sourceware so we can have better integration (for example to > automatically link bugs, patches and commits). But weren't sure those > improvements were enough to "break" old links/habits. > > Cheers, > > Mark > |
|
From: Mark W. <ma...@kl...> - 2023-03-23 08:45:25
|
Hi Nick, On Thu, Mar 23, 2023 at 07:31:47AM +1100, Nicholas Nethercote wrote: > Thanks to Paul and Mark for a couple of small fixes to my commit. Thank you for the big fixes/rewrite! > Yesterday I was idly dreaming about the quality-of-life improvements that > would be available if Valgrind was hosted on GitHub: > - ability to upload commits ahead of time, in a fashion nicer than "attach > patch to bugzilla" > - ability to do reviews > - CI support for pre-merge testing runs > - easier entry for newcomers > > Does sourceware.org have support for any of these things? Yes, sourceware offers patchwork.sourceware.org (in combination with public-inbox support) which can be used for patch tracking and can be configured to do pre-commit CI. And through builder.sourceware.org you can do builds for "try branches". Note that valgrind already is using the sourceware CI for arm64, armhf, i386, ppc64, ppc64le, power10, power9, x86_64 on some gnu/linux distros: https://builder.sourceware.org/buildbot/#/builders?tags=valgrind And there are of course the nightly builders which report to valgrind-testresults: https://sourceforge.net/p/valgrind/mailman/valgrind-testresults/ We have been pondering moving bugzilla and the mailinglists to sourceware so we can have better integration (for example to automatically link bugs, patches and commits). But weren't sure those improvements were enough to "break" old links/habits. Cheers, Mark |
|
From: Nicholas N. <nj...@so...> - 2023-03-23 08:15:25
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=3f8494c8a4aaeb0176c38d22bb52ba221930454d commit 3f8494c8a4aaeb0176c38d22bb52ba221930454d Author: Nicholas Nethercote <n.n...@gm...> Date: Tue Mar 21 11:04:25 2023 +1100 Just use one decimal place for all percentages. Simpler, shorter, and good enough in practice. Diff: --- cachegrind/cg_annotate.in | 7 +-- cachegrind/tests/ann2.post.exp | 36 +++++------ cachegrind/tests/ann3.post.exp | 136 ++++++++++++++++++++--------------------- 3 files changed, 87 insertions(+), 92 deletions(-) diff --git a/cachegrind/cg_annotate.in b/cachegrind/cg_annotate.in index e7d094b50d..ac2f2b792a 100755 --- a/cachegrind/cg_annotate.in +++ b/cachegrind/cg_annotate.in @@ -528,12 +528,7 @@ class CcPrinter: perc = " (n/a)" else: p = cc.counts[i] * 100 / summary_count - # Use just one decimal place for large percentages. - if abs(p) < 100: - w = 2 - else: - w = 1 - perc = f" ({p:.{w}f}%)" + perc = f" ({p:.1f}%)" else: perc = "" diff --git a/cachegrind/tests/ann2.post.exp b/cachegrind/tests/ann2.post.exp index 8d33c9e79a..4428346813 100644 --- a/cachegrind/tests/ann2.post.exp +++ b/cachegrind/tests/ann2.post.exp @@ -18,30 +18,30 @@ Dw Dr Ir 18,005 (100.0%) 4,057,955 (100.0%) 5,229,753 (100.0%) PROGRAM TOTALS -------------------------------------------------------------------------------- -Dw Dr Ir file:function --------------------------------------------------------------------------------- - 3 (0.02%) 4,000,004 (98.57%) 5,000,015 (95.61%) a.c:main -4,543 (25.23%) 17,566 (0.43%) 47,993 (0.92%) /build/glibc-OTsEL5/glibc-2.27/elf/dl-lookup.c:do_lookup_x -3,083 (17.12%) 5,750 (0.14%) 28,534 (0.55%) /build/glibc-OTsEL5/glibc-2.27/elf/dl-lookup.c:_dl_lookup_symbol_x - 8 (0.04%) 5,521 (0.14%) 28,136 (0.54%) /build/glibc-OTsEL5/glibc-2.27/elf/dl-tunables.c:__GI___tunables_init -2,490 (13.83%) 5,219 (0.13%) 21,821 (0.42%) /build/glibc-OTsEL5/glibc-2.27/elf/../sysdeps/x86_64/dl-machine.h:_dl_relocate_object - 0 5,158 (0.13%) 25,408 (0.49%) /build/glibc-OTsEL5/glibc-2.27/string/../sysdeps/x86_64/strcmp.S:strcmp +Dw Dr Ir file:function +-------------------------------------------------------------------------------- + 3 (0.0%) 4,000,004 (98.6%) 5,000,015 (95.6%) a.c:main +4,543 (25.2%) 17,566 (0.4%) 47,993 (0.9%) /build/glibc-OTsEL5/glibc-2.27/elf/dl-lookup.c:do_lookup_x +3,083 (17.1%) 5,750 (0.1%) 28,534 (0.5%) /build/glibc-OTsEL5/glibc-2.27/elf/dl-lookup.c:_dl_lookup_symbol_x + 8 (0.0%) 5,521 (0.1%) 28,136 (0.5%) /build/glibc-OTsEL5/glibc-2.27/elf/dl-tunables.c:__GI___tunables_init +2,490 (13.8%) 5,219 (0.1%) 21,821 (0.4%) /build/glibc-OTsEL5/glibc-2.27/elf/../sysdeps/x86_64/dl-machine.h:_dl_relocate_object + 0 5,158 (0.1%) 25,408 (0.5%) /build/glibc-OTsEL5/glibc-2.27/string/../sysdeps/x86_64/strcmp.S:strcmp -------------------------------------------------------------------------------- -- User-annotated source: a.c -------------------------------------------------------------------------------- -Dw Dr Ir +Dw Dr Ir - 1 (0.01%) 0 2 (0.00%) int main(void) { - 1 (0.01%) 0 1 (0.00%) int z = 0; - 1 (0.01%) 2,000,001 (49.29%) 3,000,004 (57.36%) for (int i = 0; i < 1000000; i++) { - 0 2,000,000 (49.29%) 2,000,000 (38.24%) z += i; - . . . } - 0 1 (0.00%) 6 (0.00%) return z % 256; - 0 2 (0.00%) 2 (0.00%) } + 1 (0.0%) 0 2 (0.0%) int main(void) { + 1 (0.0%) 0 1 (0.0%) int z = 0; + 1 (0.0%) 2,000,001 (49.3%) 3,000,004 (57.4%) for (int i = 0; i < 1000000; i++) { + 0 2,000,000 (49.3%) 2,000,000 (38.2%) z += i; + . . . } + 0 1 (0.0%) 6 (0.0%) return z % 256; + 0 2 (0.0%) 2 (0.0%) } -------------------------------------------------------------------------------- -Dw Dr Ir +Dw Dr Ir -------------------------------------------------------------------------------- - 3 (0.02%) 4,000,004 (98.57%) 5,000,015 (95.61%) events annotated + 3 (0.0%) 4,000,004 (98.6%) 5,000,015 (95.6%) events annotated diff --git a/cachegrind/tests/ann3.post.exp b/cachegrind/tests/ann3.post.exp index 52c5b87503..063715aa6f 100644 --- a/cachegrind/tests/ann3.post.exp +++ b/cachegrind/tests/ann3.post.exp @@ -18,48 +18,48 @@ A SomeCount VeryLongEventName 100,000 (100.0%) 100,000 (100.0%) 0 PROGRAM TOTALS -------------------------------------------------------------------------------- -A SomeCount VeryLongEventName file:function --------------------------------------------------------------------------------- -70,491 (70.49%) 90,491 (90.49%) 0 ann3-basic.rs:f0 -15,000 (15.00%) 600 (0.60%) 0 ann3-basic.rs:f1 - 9,000 (9.00%) 6,000 (6.00%) 0 ann3-could-not-be-found.rs:f1 - 2,000 (2.00%) 100 (0.10%) 0 ann3-basic.rs:f2 - 1,000 (1.00%) 500 (0.50%) 0 ann3-via-I.rs:f1 - 1,000 (1.00%) 300 (0.30%) -1,000 (n/a) ann3-past-the-end.rs:f1 --1,000 (-1.00%) 0 0 ann3-negatives.rs:neg3 --1,000 (-1.00%) 0 0 ann3-negatives.rs:neg2 - 1,000 (1.00%) 0 0 ann3-more-recent-than-cgout.rs:new - 1,000 (1.00%) 0 0 ???:unknown - 500 (0.50%) 0 0 ann3-basic.rs:f6 - 500 (0.50%) 0 0 ann3-basic.rs:f4 +A SomeCount VeryLongEventName file:function +-------------------------------------------------------------------------------- +70,491 (70.5%) 90,491 (90.5%) 0 ann3-basic.rs:f0 +15,000 (15.0%) 600 (0.6%) 0 ann3-basic.rs:f1 + 9,000 (9.0%) 6,000 (6.0%) 0 ann3-could-not-be-found.rs:f1 + 2,000 (2.0%) 100 (0.1%) 0 ann3-basic.rs:f2 + 1,000 (1.0%) 500 (0.5%) 0 ann3-via-I.rs:f1 + 1,000 (1.0%) 300 (0.3%) -1,000 (n/a) ann3-past-the-end.rs:f1 +-1,000 (-1.0%) 0 0 ann3-negatives.rs:neg3 +-1,000 (-1.0%) 0 0 ann3-negatives.rs:neg2 + 1,000 (1.0%) 0 0 ann3-more-recent-than-cgout.rs:new + 1,000 (1.0%) 0 0 ???:unknown + 500 (0.5%) 0 0 ann3-basic.rs:f6 + 500 (0.5%) 0 0 ann3-basic.rs:f4 -------------------------------------------------------------------------------- -- Auto-annotated source: ann3-basic.rs -------------------------------------------------------------------------------- -A SomeCount VeryLongEventName +A SomeCount VeryLongEventName -- line 2 ---------------------------------------- - . . . two - . . . three - 5,000 (5.00%) 500 (0.50%) 0 four - 5,000 (5.00%) 100 (0.10%) 0 five - . . . six -70,491 (70.49%) 90,491 (90.49%) 0 seven - . . . eight - 110 (0.11%) 9 (0.01%) 0 nine - . . . ten - . . . eleven - 200 (0.20%) 0 0 twelve - 200 (0.20%) 0 0 thirteen - 100 (0.10%) 0 0 fourteen - 0 0 0 fifteen - 0 0 0 sixteen - 0 0 0 seventeen - 0 0 0 eighteen - 499 (0.50%) 2,000 (2.00%) 0 nineteen - 300 (0.30%) 0 0 twenty - - 7,100 (7.10%) 100 (0.10%) 0 <counts for unidentified lines in ann3-basic.rs> + . . . two + . . . three + 5,000 (5.0%) 500 (0.5%) 0 four + 5,000 (5.0%) 100 (0.1%) 0 five + . . . six +70,491 (70.5%) 90,491 (90.5%) 0 seven + . . . eight + 110 (0.1%) 9 (0.0%) 0 nine + . . . ten + . . . eleven + 200 (0.2%) 0 0 twelve + 200 (0.2%) 0 0 thirteen + 100 (0.1%) 0 0 fourteen + 0 0 0 fifteen + 0 0 0 sixteen + 0 0 0 seventeen + 0 0 0 eighteen + 499 (0.5%) 2,000 (2.0%) 0 nineteen + 300 (0.3%) 0 0 twenty + + 7,100 (7.1%) 100 (0.1%) 0 <counts for unidentified lines in ann3-basic.rs> -------------------------------------------------------------------------------- -- Auto-annotated source: ann3-more-recent-than-cgout.rs @@ -71,49 +71,49 @@ A SomeCount VeryLongEventName @ Annotations may not be correct. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -A SomeCount VeryLongEventName +A SomeCount VeryLongEventName - . . . one -1,000 (1.00%) 0 0 two - . . . three - . . . four + . . . one +1,000 (1.0%) 0 0 two + . . . three + . . . four -- line 4 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: ann3-negatives.rs -------------------------------------------------------------------------------- -A SomeCount VeryLongEventName - - 2,000 (2.00%) 2,000 (2.00%) 2,000 (n/a) one - -1,000 (-1.00%) -1,000 (-1.00%) 0 two - . . . three - . . . four - 999,000 (999.0%) 0 -150,000 (n/a) five --1,000,000 (-1000.0%) 0 150,000 (n/a) six - . . . seven - . . . eight - . . . nine - -10,000 (-10.00%) 0 10 (n/a) ten - 10,000 (10.00%) 0 -20 (n/a) eleven - . . . twelve - . . . thirteen +A SomeCount VeryLongEventName + + 2,000 (2.0%) 2,000 (2.0%) 2,000 (n/a) one + -1,000 (-1.0%) -1,000 (-1.0%) 0 two + . . . three + . . . four + 999,000 (999.0%) 0 -150,000 (n/a) five +-1,000,000 (-1000.0%) 0 150,000 (n/a) six + . . . seven + . . . eight + . . . nine + -10,000 (-10.0%) 0 10 (n/a) ten + 10,000 (10.0%) 0 -20 (n/a) eleven + . . . twelve + . . . thirteen -- line 13 ---------------------------------------- - -2,000 (-2.00%) -1,000 (-1.00%) -990 (n/a) <counts for unidentified lines in ann3-negatives.rs> + -2,000 (-2.0%) -1,000 (-1.0%) -990 (n/a) <counts for unidentified lines in ann3-negatives.rs> -------------------------------------------------------------------------------- -- Auto-annotated source: ann3-past-the-end.rs -------------------------------------------------------------------------------- -A SomeCount VeryLongEventName +A SomeCount VeryLongEventName -200 (0.20%) 100 (0.10%) 0 one - . . . two - . . . three +200 (0.2%) 100 (0.1%) 0 one + . . . two + . . . three -- line 3 ---------------------------------------- -- line 18 ---------------------------------------- -300 (0.30%) 100 (0.10%) 0 <bogus line 20> -300 (0.30%) 100 (0.10%) 0 <bogus line 21> -200 (0.20%) 0 -1,000 (n/a) <bogus line 22> +300 (0.3%) 100 (0.1%) 0 <bogus line 20> +300 (0.3%) 100 (0.1%) 0 <bogus line 21> +200 (0.2%) 0 -1,000 (n/a) <bogus line 22> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ WARNING @@ WARNING @@ WARNING @@ WARNING @@ WARNING @@ WARNING @@ WARNING @@ @@ -129,9 +129,9 @@ A SomeCount VeryLongEventName -------------------------------------------------------------------------------- -- Auto-annotated source: ann3-aux/ann3-via-I.rs -------------------------------------------------------------------------------- -A SomeCount VeryLongEventName +A SomeCount VeryLongEventName -1,000 (1.00%) 500 (0.50%) 0 one +1,000 (1.0%) 500 (0.5%) 0 one -------------------------------------------------------------------------------- The following files chosen for auto-annotation could not be found: @@ -140,7 +140,7 @@ The following files chosen for auto-annotation could not be found: ann3-no-such-file.rs -------------------------------------------------------------------------------- -A SomeCount VeryLongEventName +A SomeCount VeryLongEventName -------------------------------------------------------------------------------- -84,100 (84.10%) 94,700 (94.70%) 1,990 (n/a) events annotated +84,100 (84.1%) 94,700 (94.7%) 1,990 (n/a) events annotated |
|
From: Nicholas N. <nj...@so...> - 2023-03-23 08:15:24
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=05d01cd6817613331b35955c84b23757e27db392 commit 05d01cd6817613331b35955c84b23757e27db392 Author: Nicholas Nethercote <n.n...@gm...> Date: Tue Mar 21 11:58:36 2023 +1100 Change `Threshold:` to `Thresholds:`. Because all the thresholds other than the first one were always 100, due to historical reasons. Diff: --- cachegrind/cg_annotate.in | 17 ++--------------- cachegrind/tests/ann1.post.exp | 2 +- cachegrind/tests/ann2.post.exp | 2 +- cachegrind/tests/ann3.post.exp | 2 +- cachegrind/tests/diff.post.exp | 2 +- 5 files changed, 6 insertions(+), 19 deletions(-) diff --git a/cachegrind/cg_annotate.in b/cachegrind/cg_annotate.in index ac2f2b792a..48bf4f1aab 100755 --- a/cachegrind/cg_annotate.in +++ b/cachegrind/cg_annotate.in @@ -233,12 +233,6 @@ class Events: # Like `sort_events`, but indices into `events`, rather than names. sort_indices: list[int] - # Threshold percentages, one per sort event. Dictates when we stop printing - # functions. Positions correspond to positions in `sort_events`. Only - # `thresholds[0]` is actually used for thresholding, for historical - # reasons. - threshold_percs: list[float] - def __init__(self, text: str) -> None: self.events = text.split() self.num_events = len(self.events) @@ -269,11 +263,6 @@ class Events: self.sort_indices = [event_indices[event] for event in self.sort_events] - # The primary sort event gets the --threshold value, and all other sort - # events get 100% (i.e. ignored). - self.threshold_percs = [100] * len(self.sort_events) - self.threshold_percs[0] = args.threshold - def mk_cc(self, text: str) -> Cc: # This is slightly faster than a list comprehension. counts = list(map(int, text.split())) @@ -561,7 +550,7 @@ def print_header(desc: str, cmd: str, events: Events) -> None: print("Events recorded: ", *events.events) print("Events shown: ", *events.show_events) print("Event sort order:", *events.sort_events) - print("Thresholds: ", *events.threshold_percs) + print("Threshold: ", args.threshold) if len(args.include) == 0: print("Include dirs: ") @@ -598,9 +587,7 @@ def print_flfn_ccs( threshold_index = events.sort_indices[0] # Convert the threshold from a percentage to an event count. - threshold = ( - events.threshold_percs[0] * abs(summary_cc.counts[threshold_index]) / 100 - ) + threshold = args.threshold * abs(summary_cc.counts[threshold_index]) / 100 def meets_threshold(flfn_and_cc: tuple[Flfn, Cc]) -> bool: cc = flfn_and_cc[1] diff --git a/cachegrind/tests/ann1.post.exp b/cachegrind/tests/ann1.post.exp index 10196377a7..e946b0a743 100644 --- a/cachegrind/tests/ann1.post.exp +++ b/cachegrind/tests/ann1.post.exp @@ -7,7 +7,7 @@ Data file: cgout-test Events recorded: Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw Events shown: Ir I1mr ILmr Event sort order: Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw -Thresholds: 0.1 100 100 100 100 100 100 100 100 +Threshold: 0.1 Include dirs: User annotated: Auto-annotation: on diff --git a/cachegrind/tests/ann2.post.exp b/cachegrind/tests/ann2.post.exp index 4428346813..a4884e6152 100644 --- a/cachegrind/tests/ann2.post.exp +++ b/cachegrind/tests/ann2.post.exp @@ -7,7 +7,7 @@ Data file: cgout-test Events recorded: Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw Events shown: Dw Dr Ir Event sort order: Dr -Thresholds: 0.1 +Threshold: 0.1 Include dirs: User annotated: a.c Auto-annotation: off diff --git a/cachegrind/tests/ann3.post.exp b/cachegrind/tests/ann3.post.exp index 063715aa6f..a5520b5af3 100644 --- a/cachegrind/tests/ann3.post.exp +++ b/cachegrind/tests/ann3.post.exp @@ -4,7 +4,7 @@ Data file: cgout-test3 Events recorded: A SomeCount VeryLongEventName Events shown: A SomeCount VeryLongEventName Event sort order: A SomeCount VeryLongEventName -Thresholds: 0.5 100 100 +Threshold: 0.5 Include dirs: ann3-no-such-dir ann3-no-such-dir-2 ann3-aux diff --git a/cachegrind/tests/diff.post.exp b/cachegrind/tests/diff.post.exp index 81fbe3e920..7d3b8aeeee 100644 --- a/cachegrind/tests/diff.post.exp +++ b/cachegrind/tests/diff.post.exp @@ -5,7 +5,7 @@ Data file: cgout-diff Events recorded: Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw Events shown: Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw Event sort order: Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw -Thresholds: 0.1 100 100 100 100 100 100 100 100 +Threshold: 0.1 Include dirs: User annotated: Auto-annotation: on |
|
From: Nicholas N. <nj...@so...> - 2023-03-23 08:15:21
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=b8a90ee9682b5dbed81d4dd8ee2d7bc3b77eb906 commit b8a90ee9682b5dbed81d4dd8ee2d7bc3b77eb906 Author: Nicholas Nethercote <n.n...@gm...> Date: Mon Mar 20 13:58:04 2023 +1100 Improve formatting of percentage columns. Currently their width is mostly hard-wired in a quick and dirty fashion. This commit does them properly, so: - all columns are always the right width, even ones with really large percentages - things like `( 1.00%)` are now `(1.00%)` - any percentages that would involve a division by zero now show as `(n/a)` rather than `( 0.00%)` Diff: --- cachegrind/cg_annotate.in | 99 +++++++++++++++------------- cachegrind/tests/ann2.post.exp | 28 ++++---- cachegrind/tests/ann3.post.exp | 144 ++++++++++++++++++++--------------------- cachegrind/tests/cgout-test3 | 2 +- cachegrind/tests/diff.post.exp | 16 ++--- 5 files changed, 148 insertions(+), 141 deletions(-) diff --git a/cachegrind/cg_annotate.in b/cachegrind/cg_annotate.in index 20969f0f92..e7d094b50d 100755 --- a/cachegrind/cg_annotate.in +++ b/cachegrind/cg_annotate.in @@ -456,10 +456,6 @@ def read_cgout_file() -> tuple[str, str, Events, DictFlfnCc, DictFlDictLineCc, C return (desc, cmd, events, dict_flfn_cc, dict_fl_dict_line_cc, summary_cc) -def safe_perc(m: int, n: int) -> float: - return 0 if n == 0 else m * 100 / n - - class CcPrinter: # Note: every `CcPrinter` gets the same `Events` object. events: Events @@ -467,9 +463,14 @@ class CcPrinter: # Note: every `CcPrinter` gets the same summary CC. summary_cc: Cc - # The width of each event column. For simplicity, its length matches - # `events.events`, even though not all events are necessarily shown. - widths: list[int] + # The width of each event count column. (This column is also used for event + # names.) For simplicity, its length matches `events.events`, even though + # not all events are necessarily shown. + count_widths: list[int] + + # The width of each percentage column. Zero if --show-percs is disabled. + # Its length matches `count_widths`. + perc_widths: list[int] def __init__(self, events: Events, ccs: list[Cc], summary_cc: Cc) -> None: self.events = events @@ -488,61 +489,67 @@ class CcPrinter: min_cc.counts[i] = count # Find maximum width for each column. - self.widths = [0] * len(events.events) + self.count_widths = [0] * len(events.events) + self.perc_widths = [0] * len(events.events) for i, event in enumerate(events.events): - # Get widest of the min and max, accounting for commas that will be - # added, and a possible percentage. - width = max(len(str(min_cc.counts[i])), len(str(max_cc.counts[i]))) - width += (width - 1) // 3 - if args.show_percs: - width += 9 # e.g. " (12.34%)" is 9 chars. + # Get count and perc widths of the min and max CCs. + (min_count, min_perc) = self.count_and_perc(min_cc, i) + (max_count, max_perc) = self.count_and_perc(max_cc, i) - # Account for the event name, too. - self.widths[i] = max(width, len(event)) + # The event name goes in the count column. + self.count_widths[i] = max(len(min_count), len(max_count), len(event)) + self.perc_widths[i] = max(len(min_perc), len(max_perc)) def print_events(self, suffix: str) -> None: for i in self.events.show_indices: - # +1 is for the single space between columns. - print(f"{self.events.events[i]:{self.widths[i] + 1}}", end="") + # The event name goes in the count column. + event = self.events.events[i] + nwidth = self.count_widths[i] + pwidth = self.perc_widths[i] + empty_perc = "" + print(f"{event:<{nwidth}}{empty_perc:>{pwidth}} ", end="") print(suffix) - def print_count(self, i: int, text: str) -> None: - print(f"{text:>{self.widths[i]}}", end=" ") + def print_count_and_perc(self, i: int, count: str, perc: str) -> None: + nwidth = self.count_widths[i] + pwidth = self.perc_widths[i] + print(f"{count:>{nwidth}}{perc:>{pwidth}} ", end="") - def print_cc(self, cc: Cc, suffix: str) -> None: - for i in self.events.show_indices: - nstr = f"{cc.counts[i]:,d}" # commify - if args.show_percs: - if cc.counts[i] != 0: - # Try our best to keep the number fitting into 5 chars. This - # requires dropping a digit after the decimal place if it's - # sufficiently negative (e.g. "-10.0") or positive (e.g. - # "100.0"). Thanks to diffs it's possible to have even more - # extreme values, like "-100.0" or "1000.0"; those rare case - # will end up with slightly wrong indenting, oh well. - p = safe_perc(cc.counts[i], self.summary_cc.counts[i]) - normal = -9.995 < p < 99.995 - perc = f" ({p:5.{2 if normal else 1}f}%)" - else: - # Don't show percentages for "0" entries, it's just clutter. - perc = " " - else: + def count_and_perc(self, cc: Cc, i: int) -> tuple[str, str]: + count = f"{cc.counts[i]:,d}" # commify + if args.show_percs: + if cc.counts[i] == 0: + # Don't show percentages for "0" entries, it's just clutter. perc = "" + else: + summary_count = self.summary_cc.counts[i] + if summary_count == 0: + perc = " (n/a)" + else: + p = cc.counts[i] * 100 / summary_count + # Use just one decimal place for large percentages. + if abs(p) < 100: + w = 2 + else: + w = 1 + perc = f" ({p:.{w}f}%)" + else: + perc = "" - self.print_count(i, nstr + perc) + return (count, perc) + + def print_cc(self, cc: Cc, suffix: str) -> None: + for i in self.events.show_indices: + (count, perc) = self.count_and_perc(cc, i) + self.print_count_and_perc(i, count, perc) print("", suffix) def print_missing_cc(self, suffix: str) -> None: - if args.show_percs: - # Don't show percentages for "." entries, it's just clutter. - text = ". " - else: - text = "." - + # Don't show percentages for "." entries, it's just clutter. for i in self.events.show_indices: - self.print_count(i, text) + self.print_count_and_perc(i, ".", "") print("", suffix) diff --git a/cachegrind/tests/ann2.post.exp b/cachegrind/tests/ann2.post.exp index ac12bf87a4..8d33c9e79a 100644 --- a/cachegrind/tests/ann2.post.exp +++ b/cachegrind/tests/ann2.post.exp @@ -20,28 +20,28 @@ Dw Dr Ir -------------------------------------------------------------------------------- Dw Dr Ir file:function -------------------------------------------------------------------------------- - 3 ( 0.02%) 4,000,004 (98.57%) 5,000,015 (95.61%) a.c:main -4,543 (25.23%) 17,566 ( 0.43%) 47,993 ( 0.92%) /build/glibc-OTsEL5/glibc-2.27/elf/dl-lookup.c:do_lookup_x -3,083 (17.12%) 5,750 ( 0.14%) 28,534 ( 0.55%) /build/glibc-OTsEL5/glibc-2.27/elf/dl-lookup.c:_dl_lookup_symbol_x - 8 ( 0.04%) 5,521 ( 0.14%) 28,136 ( 0.54%) /build/glibc-OTsEL5/glibc-2.27/elf/dl-tunables.c:__GI___tunables_init -2,490 (13.83%) 5,219 ( 0.13%) 21,821 ( 0.42%) /build/glibc-OTsEL5/glibc-2.27/elf/../sysdeps/x86_64/dl-machine.h:_dl_relocate_object - 0 5,158 ( 0.13%) 25,408 ( 0.49%) /build/glibc-OTsEL5/glibc-2.27/string/../sysdeps/x86_64/strcmp.S:strcmp + 3 (0.02%) 4,000,004 (98.57%) 5,000,015 (95.61%) a.c:main +4,543 (25.23%) 17,566 (0.43%) 47,993 (0.92%) /build/glibc-OTsEL5/glibc-2.27/elf/dl-lookup.c:do_lookup_x +3,083 (17.12%) 5,750 (0.14%) 28,534 (0.55%) /build/glibc-OTsEL5/glibc-2.27/elf/dl-lookup.c:_dl_lookup_symbol_x + 8 (0.04%) 5,521 (0.14%) 28,136 (0.54%) /build/glibc-OTsEL5/glibc-2.27/elf/dl-tunables.c:__GI___tunables_init +2,490 (13.83%) 5,219 (0.13%) 21,821 (0.42%) /build/glibc-OTsEL5/glibc-2.27/elf/../sysdeps/x86_64/dl-machine.h:_dl_relocate_object + 0 5,158 (0.13%) 25,408 (0.49%) /build/glibc-OTsEL5/glibc-2.27/string/../sysdeps/x86_64/strcmp.S:strcmp -------------------------------------------------------------------------------- -- User-annotated source: a.c -------------------------------------------------------------------------------- Dw Dr Ir -1 ( 0.01%) 0 2 ( 0.00%) int main(void) { -1 ( 0.01%) 0 1 ( 0.00%) int z = 0; -1 ( 0.01%) 2,000,001 (49.29%) 3,000,004 (57.36%) for (int i = 0; i < 1000000; i++) { -0 2,000,000 (49.29%) 2,000,000 (38.24%) z += i; -. . . } -0 1 ( 0.00%) 6 ( 0.00%) return z % 256; -0 2 ( 0.00%) 2 ( 0.00%) } + 1 (0.01%) 0 2 (0.00%) int main(void) { + 1 (0.01%) 0 1 (0.00%) int z = 0; + 1 (0.01%) 2,000,001 (49.29%) 3,000,004 (57.36%) for (int i = 0; i < 1000000; i++) { + 0 2,000,000 (49.29%) 2,000,000 (38.24%) z += i; + . . . } + 0 1 (0.00%) 6 (0.00%) return z % 256; + 0 2 (0.00%) 2 (0.00%) } -------------------------------------------------------------------------------- Dw Dr Ir -------------------------------------------------------------------------------- -3 ( 0.02%) 4,000,004 (98.57%) 5,000,015 (95.61%) events annotated + 3 (0.02%) 4,000,004 (98.57%) 5,000,015 (95.61%) events annotated diff --git a/cachegrind/tests/ann3.post.exp b/cachegrind/tests/ann3.post.exp index a648bb2e78..52c5b87503 100644 --- a/cachegrind/tests/ann3.post.exp +++ b/cachegrind/tests/ann3.post.exp @@ -1,9 +1,9 @@ -------------------------------------------------------------------------------- Command: ann3 Data file: cgout-test3 -Events recorded: A SomeCount ThisIsAVeryLongEventName -Events shown: A SomeCount ThisIsAVeryLongEventName -Event sort order: A SomeCount ThisIsAVeryLongEventName +Events recorded: A SomeCount VeryLongEventName +Events shown: A SomeCount VeryLongEventName +Event sort order: A SomeCount VeryLongEventName Thresholds: 0.5 100 100 Include dirs: ann3-no-such-dir ann3-no-such-dir-2 @@ -13,53 +13,53 @@ User annotated: ann3-unmentioned.rs Auto-annotation: on -------------------------------------------------------------------------------- -A SomeCount ThisIsAVeryLongEventName +A SomeCount VeryLongEventName -------------------------------------------------------------------------------- -100,000 (100.0%) 100,000 (100.0%) 0 PROGRAM TOTALS +100,000 (100.0%) 100,000 (100.0%) 0 PROGRAM TOTALS -------------------------------------------------------------------------------- -A SomeCount ThisIsAVeryLongEventName file:function +A SomeCount VeryLongEventName file:function -------------------------------------------------------------------------------- -70,491 (70.49%) 90,491 (90.49%) 0 ann3-basic.rs:f0 -15,000 (15.00%) 600 ( 0.60%) 0 ann3-basic.rs:f1 - 9,000 ( 9.00%) 6,000 ( 6.00%) 0 ann3-could-not-be-found.rs:f1 - 2,000 ( 2.00%) 100 ( 0.10%) 0 ann3-basic.rs:f2 - 1,000 ( 1.00%) 500 ( 0.50%) 0 ann3-via-I.rs:f1 - 1,000 ( 1.00%) 300 ( 0.30%) -1,000 ( 0.00%) ann3-past-the-end.rs:f1 --1,000 (-1.00%) 0 0 ann3-negatives.rs:neg3 --1,000 (-1.00%) 0 0 ann3-negatives.rs:neg2 - 1,000 ( 1.00%) 0 0 ann3-more-recent-than-cgout.rs:new - 1,000 ( 1.00%) 0 0 ???:unknown - 500 ( 0.50%) 0 0 ann3-basic.rs:f6 - 500 ( 0.50%) 0 0 ann3-basic.rs:f4 +70,491 (70.49%) 90,491 (90.49%) 0 ann3-basic.rs:f0 +15,000 (15.00%) 600 (0.60%) 0 ann3-basic.rs:f1 + 9,000 (9.00%) 6,000 (6.00%) 0 ann3-could-not-be-found.rs:f1 + 2,000 (2.00%) 100 (0.10%) 0 ann3-basic.rs:f2 + 1,000 (1.00%) 500 (0.50%) 0 ann3-via-I.rs:f1 + 1,000 (1.00%) 300 (0.30%) -1,000 (n/a) ann3-past-the-end.rs:f1 +-1,000 (-1.00%) 0 0 ann3-negatives.rs:neg3 +-1,000 (-1.00%) 0 0 ann3-negatives.rs:neg2 + 1,000 (1.00%) 0 0 ann3-more-recent-than-cgout.rs:new + 1,000 (1.00%) 0 0 ???:unknown + 500 (0.50%) 0 0 ann3-basic.rs:f6 + 500 (0.50%) 0 0 ann3-basic.rs:f4 -------------------------------------------------------------------------------- -- Auto-annotated source: ann3-basic.rs -------------------------------------------------------------------------------- -A SomeCount ThisIsAVeryLongEventName +A SomeCount VeryLongEventName -- line 2 ---------------------------------------- - . . . two - . . . three - 5,000 ( 5.00%) 500 ( 0.50%) 0 four - 5,000 ( 5.00%) 100 ( 0.10%) 0 five - . . . six -70,491 (70.49%) 90,491 (90.49%) 0 seven - . . . eight - 110 ( 0.11%) 9 ( 0.01%) 0 nine - . . . ten - . . . eleven - 200 ( 0.20%) 0 0 twelve - 200 ( 0.20%) 0 0 thirteen - 100 ( 0.10%) 0 0 fourteen - 0 0 0 fifteen - 0 0 0 sixteen - 0 0 0 seventeen - 0 0 0 eighteen - 499 ( 0.50%) 2,000 ( 2.00%) 0 nineteen - 300 ( 0.30%) 0 0 twenty - - 7,100 ( 7.10%) 100 ( 0.10%) 0 <counts for unidentified lines in ann3-basic.rs> + . . . two + . . . three + 5,000 (5.00%) 500 (0.50%) 0 four + 5,000 (5.00%) 100 (0.10%) 0 five + . . . six +70,491 (70.49%) 90,491 (90.49%) 0 seven + . . . eight + 110 (0.11%) 9 (0.01%) 0 nine + . . . ten + . . . eleven + 200 (0.20%) 0 0 twelve + 200 (0.20%) 0 0 thirteen + 100 (0.10%) 0 0 fourteen + 0 0 0 fifteen + 0 0 0 sixteen + 0 0 0 seventeen + 0 0 0 eighteen + 499 (0.50%) 2,000 (2.00%) 0 nineteen + 300 (0.30%) 0 0 twenty + + 7,100 (7.10%) 100 (0.10%) 0 <counts for unidentified lines in ann3-basic.rs> -------------------------------------------------------------------------------- -- Auto-annotated source: ann3-more-recent-than-cgout.rs @@ -71,49 +71,49 @@ A SomeCount ThisIsAVeryLongEventName @ Annotations may not be correct. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -A SomeCount ThisIsAVeryLongEventName +A SomeCount VeryLongEventName - . . . one -1,000 ( 1.00%) 0 0 two - . . . three - . . . four + . . . one +1,000 (1.00%) 0 0 two + . . . three + . . . four -- line 4 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: ann3-negatives.rs -------------------------------------------------------------------------------- -A SomeCount ThisIsAVeryLongEventName - - 2,000 ( 2.00%) 2,000 ( 2.00%) 2,000 ( 0.00%) one - -1,000 (-1.00%) -1,000 (-1.00%) 0 two - . . . three - . . . four - 999,000 (999.0%) 0 -150,000 ( 0.00%) five --1,000,000 (-1000.0%) 0 150,000 ( 0.00%) six - . . . seven - . . . eight - . . . nine - -10,000 (-10.0%) 0 10 ( 0.00%) ten - 10,000 (10.00%) 0 -20 ( 0.00%) eleven - . . . twelve - . . . thirteen +A SomeCount VeryLongEventName + + 2,000 (2.00%) 2,000 (2.00%) 2,000 (n/a) one + -1,000 (-1.00%) -1,000 (-1.00%) 0 two + . . . three + . . . four + 999,000 (999.0%) 0 -150,000 (n/a) five +-1,000,000 (-1000.0%) 0 150,000 (n/a) six + . . . seven + . . . eight + . . . nine + -10,000 (-10.00%) 0 10 (n/a) ten + 10,000 (10.00%) 0 -20 (n/a) eleven + . . . twelve + . . . thirteen -- line 13 ---------------------------------------- - -2,000 (-2.00%) -1,000 (-1.00%) -990 ( 0.00%) <counts for unidentified lines in ann3-negatives.rs> + -2,000 (-2.00%) -1,000 (-1.00%) -990 (n/a) <counts for unidentified lines in ann3-negatives.rs> -------------------------------------------------------------------------------- -- Auto-annotated source: ann3-past-the-end.rs -------------------------------------------------------------------------------- -A SomeCount ThisIsAVeryLongEventName +A SomeCount VeryLongEventName -200 ( 0.20%) 100 ( 0.10%) 0 one - . . . two - . . . three +200 (0.20%) 100 (0.10%) 0 one + . . . two + . . . three -- line 3 ---------------------------------------- -- line 18 ---------------------------------------- -300 ( 0.30%) 100 ( 0.10%) 0 <bogus line 20> -300 ( 0.30%) 100 ( 0.10%) 0 <bogus line 21> -200 ( 0.20%) 0 -1,000 ( 0.00%) <bogus line 22> +300 (0.30%) 100 (0.10%) 0 <bogus line 20> +300 (0.30%) 100 (0.10%) 0 <bogus line 21> +200 (0.20%) 0 -1,000 (n/a) <bogus line 22> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ WARNING @@ WARNING @@ WARNING @@ WARNING @@ WARNING @@ WARNING @@ WARNING @@ @@ -129,9 +129,9 @@ A SomeCount ThisIsAVeryLongEventName -------------------------------------------------------------------------------- -- Auto-annotated source: ann3-aux/ann3-via-I.rs -------------------------------------------------------------------------------- -A SomeCount ThisIsAVeryLongEventName +A SomeCount VeryLongEventName -1,000 ( 1.00%) 500 ( 0.50%) 0 one +1,000 (1.00%) 500 (0.50%) 0 one -------------------------------------------------------------------------------- The following files chosen for auto-annotation could not be found: @@ -140,7 +140,7 @@ The following files chosen for auto-annotation could not be found: ann3-no-such-file.rs -------------------------------------------------------------------------------- -A SomeCount ThisIsAVeryLongEventName +A SomeCount VeryLongEventName -------------------------------------------------------------------------------- -84,100 (84.10%) 94,700 (94.70%) 1,990 ( 0.00%) events annotated +84,100 (84.10%) 94,700 (94.70%) 1,990 (n/a) events annotated diff --git a/cachegrind/tests/cgout-test3 b/cachegrind/tests/cgout-test3 index 7a3e188a8f..d8023eef1d 100644 --- a/cachegrind/tests/cgout-test3 +++ b/cachegrind/tests/cgout-test3 @@ -1,5 +1,5 @@ cmd: ann3 -events: A SomeCount ThisIsAVeryLongEventName +events: A SomeCount VeryLongEventName # A file testing various things. fl=ann3-basic.rs diff --git a/cachegrind/tests/diff.post.exp b/cachegrind/tests/diff.post.exp index aa88967e26..81fbe3e920 100644 --- a/cachegrind/tests/diff.post.exp +++ b/cachegrind/tests/diff.post.exp @@ -11,25 +11,25 @@ User annotated: Auto-annotation: on -------------------------------------------------------------------------------- -Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw +Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw -------------------------------------------------------------------------------- -5,000,000 (100.0%) 0 0 -2,000,000 (100.0%) 0 0 0 0 0 PROGRAM TOTALS +5,000,000 (100.0%) 0 0 -2,000,000 (100.0%) 0 0 0 0 0 PROGRAM TOTALS -------------------------------------------------------------------------------- -Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw file:function +Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw file:function -------------------------------------------------------------------------------- -5,000,000 (100.0%) 0 0 -2,000,000 (100.0%) 0 0 0 0 0 a.c:main +5,000,000 (100.0%) 0 0 -2,000,000 (100.0%) 0 0 0 0 0 a.c:main -------------------------------------------------------------------------------- -- Auto-annotated source: a.c -------------------------------------------------------------------------------- -Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw +Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw -5,000,000 (100.0%) 0 0 -2,000,000 (100.0%) 0 0 0 0 0 <counts for unidentified lines in a.c> +5,000,000 (100.0%) 0 0 -2,000,000 (100.0%) 0 0 0 0 0 <counts for unidentified lines in a.c> -------------------------------------------------------------------------------- -Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw +Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw -------------------------------------------------------------------------------- -0 0 0 0 0 0 0 0 0 events annotated + 0 0 0 0 0 0 0 0 0 events annotated |