Thread (4 messages) 4 messages, 2 authors, 2014-08-12

About use of dlsym()

From: taeung <hidden>
Date: 2014-08-08 06:29:31

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 -
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help