Re: [PATCH][RFC] tracing: Use class->reg() for all registering of events

Arnaldo Carvalho de Melo
2010-06-09T12:35:49Z

Em Wed, Jun 09, 2010 at 09:23:38AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Wed, Jun 09, 2010 at 09:02:24AM -0300, Arnaldo Carvalho de Melo escreveu:
> > > On Wed, 2010-06-09 at 17:17 +0530, Srikar Dronamraju wrote:
> > > > When ran gdb on the core, it showed me that it was dumping in
> > > > /usr/lib64/libnewt.so.0.52. in newtScaleSet function.
> > > > My newt lib was of version : newt-0.52.2-15
>
> Can you please provide a backtrace? I think I know what the problem is,
> but I'm not managing to reproduce it here.
>
> > > > I am now able to workaround the problem by uninstalling newt-devel.

If you can reinstall it and then try with the following patch, that is
the minimal for .35, I'd appreciate,

Thanks,

- Arnaldo

diff --git a/tools/perf/util/newt.c b/tools/perf/util/newt.c
index cf182ca..059b772 100644
--- a/tools/perf/util/newt.c
+++ b/tools/perf/util/newt.c
@@ -43,6 +43,12 @@ struct ui_progress *ui_progress__new(const char *title, u64 total)

if (self != NULL) {
int cols;
+ /*
+ * FIXME: We should have a per UI backend way of showing
+ * progress, stdio will just show a percentage as NN%, etc.
+ */
+ if (use_browser <= 0)
+ return self;
newtGetScreenSize(&cols, NULL);
cols -= 4;
newtCenteredWindow(cols, 1, title);
@@ -67,14 +73,18 @@ out_free_self:

void ui_progress__update(struct ui_progress *self, u64 curr)
{
+ if (use_browser <= 0)
+ return;
newtScaleSet(self->scale, curr);
newtRefresh();
}

void ui_progress__delete(struct ui_progress *self)
{
- newtFormDestroy(self->form);
- newtPopWindow();
+ if (use_browser > 0) {
+ newtFormDestroy(self->form);
+ newtPopWindow();
+ }
free(self);
}