Hi taeung,

On Fri, 08 Aug 2014 15:29:26 +0900, taeung wrote:
> Hello, perf hackers :-)
>
> I'm beginner in perf.
> I'm analysing the sequence of function call and how it was written to
> update 'report' of gtk view.
>
> This is a thread of a command 'perf report --gtk'
>
> 1. run_argv()
> (in main of perf.c:534)
>
> 2. handle_internal_command()
> (in run_argv of perf.c:420 )
> So far, I've thought this process is to filter what command and option is
>
> 3. cmd_report()
> (in run_builtin of perf.c:319) by function pointer
>
> 4. setup_browser()
> (in cmd_report of builtin-report.c:750)
>
> 5. setup_gtk_browser()
> (in setup_browser of ui/setup.c:74)
>
> 6. perf_gtk__init()
> (in setup_gtk_browser of ui/setup.c:32)
>
> about number 6, I have a question.
>
> In setup_gtk_browser of ui/setup.c: 28 ~ 32,
>
>  28         perf_ui_init = dlsym(perf_gtk_handle, "perf_gtk__init");
>  29         if (perf_ui_init == NULL)
>  30                 goto out_close;
>  31
>  32         if (perf_ui_init() == 0)
>  33                 return 0;
>  34
>
> Why not call directly 'perf_gtk__init()' ?
> Why call the function by function pointer(perf_ui_init) after it is
> gotten by 'dlsym()' ?
> Why use 'dlsym()' ?
> Is it better than calling directly the function ?

It was because many perf users wanted to reduce dependency in the main
perf binary as they hardly/never use the GTK ui.  Although it can be
disabled with NO_GTK2=1 when invoking make, they're just too lazy to do
that. :)

Please see https://lkml.org/lkml/2013/8/4/154 .

Thanks,
Namhyung
--
To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to