The loop in hists__find_annotations() never set the 'nd' pointer to NULL
and it makes stdio output repeating the last element forever. I think
it doesn't set to NULL for TUI to prevent it from exiting unexpectedly.
But it should just set on stdio mode.
Fixes: d001c7a7f473 ("perf annotate-data: Add hist_entry__annotate_data_tui()")
Signed-off-by: Namhyung Kim <[email protected]>
---
tools/perf/builtin-annotate.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index 6f7104f06c42..83812b9d5363 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -491,7 +491,7 @@ static void hists__find_annotations(struct hists *hists,
return;
}
- if (next != NULL)
+ if (use_browser == 0 || next != NULL)
nd = next;
continue;
--
2.44.0.769.g3c40516874-goog
On Mon, Apr 22, 2024 at 7:06 PM Namhyung Kim <[email protected]> wrote:
>
> The loop in hists__find_annotations() never set the 'nd' pointer to NULL
> and it makes stdio output repeating the last element forever. I think
> it doesn't set to NULL for TUI to prevent it from exiting unexpectedly.
> But it should just set on stdio mode.
>
> Fixes: d001c7a7f473 ("perf annotate-data: Add hist_entry__annotate_data_tui()")
> Signed-off-by: Namhyung Kim <[email protected]>
Acked-by: Ian Rogers <[email protected]>
Should we have a test to cover things like this?
Thanks,
Ian
> ---
> tools/perf/builtin-annotate.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
> index 6f7104f06c42..83812b9d5363 100644
> --- a/tools/perf/builtin-annotate.c
> +++ b/tools/perf/builtin-annotate.c
> @@ -491,7 +491,7 @@ static void hists__find_annotations(struct hists *hists,
> return;
> }
>
> - if (next != NULL)
> + if (use_browser == 0 || next != NULL)
> nd = next;
>
> continue;
> --
> 2.44.0.769.g3c40516874-goog
>
On Tue, Apr 23, 2024 at 9:57 AM Ian Rogers <[email protected]> wrote:
>
> On Mon, Apr 22, 2024 at 7:06 PM Namhyung Kim <[email protected]> wrote:
> >
> > The loop in hists__find_annotations() never set the 'nd' pointer to NULL
> > and it makes stdio output repeating the last element forever. I think
> > it doesn't set to NULL for TUI to prevent it from exiting unexpectedly.
> > But it should just set on stdio mode.
> >
> > Fixes: d001c7a7f473 ("perf annotate-data: Add hist_entry__annotate_data_tui()")
> > Signed-off-by: Namhyung Kim <[email protected]>
>
> Acked-by: Ian Rogers <[email protected]>
Thanks for your review!
>
> Should we have a test to cover things like this?
Ok, I'll try to add one for perf annotate.
Thanks,
Namhyung
On Tue, Apr 23, 2024 at 04:07:08PM -0700, Namhyung Kim wrote:
> On Tue, Apr 23, 2024 at 9:57 AM Ian Rogers <[email protected]> wrote:
> >
> > On Mon, Apr 22, 2024 at 7:06 PM Namhyung Kim <[email protected]> wrote:
> > >
> > > The loop in hists__find_annotations() never set the 'nd' pointer to NULL
> > > and it makes stdio output repeating the last element forever. I think
> > > it doesn't set to NULL for TUI to prevent it from exiting unexpectedly.
> > > But it should just set on stdio mode.
> > >
> > > Fixes: d001c7a7f473 ("perf annotate-data: Add hist_entry__annotate_data_tui()")
> > > Signed-off-by: Namhyung Kim <[email protected]>
> >
> > Acked-by: Ian Rogers <[email protected]>
>
> Thanks for your review!
Thanks, applied to perf-tools-next,
- Arnaldo
> >
> > Should we have a test to cover things like this?
>
> Ok, I'll try to add one for perf annotate.
>
> Thanks,
> Namhyung