Fix to get correctly unmapped symbol address on kernel. This allows us
to probe on syscall symbols which are aliases of SyS_ functions with
using debuginfo.
Without this fix:
----
# ./perf probe -a sys_write
Failed to find debug information for address 3b0100
Probe point 'sys_write' not found.
Error: Failed to add events.
----
The address 0x3b0100 is a mapped address, and not usable
in debuginfo.
With this fix:
----
# ./perf probe -a sys_write
Added new event:
probe:sys_write (on sys_write)
You can now use it in all perf tools, such as:
perf record -e probe:sys_write -aR sleep 1
----
Signed-off-by: Masami Hiramatsu <[email protected]>
Cc: He Kuang <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Wang Nan <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
/* Find the address of given function */
map__for_each_symbol_by_name(map, pp->function, sym) {
- address = sym->start;
+ if (uprobes)
+ address = sym->start;
+ else
+ address = map->unmap_ip(map, sym->start);
break;
}
if (!address) {