i#3048 func-trace: Use dr_get_proc_address to find dynsym first (#3124)
i#3048 func-trace: Use dr_get_proc_address to find dynsym first (#3124)

If the application uses mechanisms like remapping sections in the module at runtime (e.g. hugepage_text, related issue #2566), the full_path of the module_data_t provided in drmgr_register_module_load_event callback could be invalid, since the original module file could already be deleted. This leads to the failure of finding the PC for a particular function in the memtrace func-tracing feature, given drsym_lookup_symbol depends on loading the original module file by path.
This PR is a partial fix to make the function tracing feature work under scenarios like hugepage_text by using dr_get_proc_address before calling drsym_lookup_symbol. This way, we can still catch the target function if its name is in the dynamic symbol table. However, if a target function is not in the dynamic symbol table and the application is running with features like hugepage_text, then the function tracing feature would still fail to trace this target function.

Issue: #3048

AmesianX/dynamorio,AmesianX/dynamorio,AmesianX/dynamorio,AmesianX/dynamorio,AmesianX/dynamorio