Sorry for my poor question.

I didn't know that 'dlopen()', 'dlsym()', 'dlclose()' for DL(Dynamic Library).
But I know it.

- Taeung -

On 08/08/2014 03:29 PM, 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 ?

- Taeung -

--
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