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 -