1*4882a593Smuzhiyunlibtraceevent(3) 2*4882a593Smuzhiyun================ 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunNAME 5*4882a593Smuzhiyun---- 6*4882a593Smuzhiyuntep_find_function,tep_find_function_address - Find function name / start address. 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunSYNOPSIS 9*4882a593Smuzhiyun-------- 10*4882a593Smuzhiyun[verse] 11*4882a593Smuzhiyun-- 12*4882a593Smuzhiyun*#include <event-parse.h>* 13*4882a593Smuzhiyun 14*4882a593Smuzhiyunconst char pass:[*]*tep_find_function*(struct tep_handle pass:[*]_tep_, unsigned long long _addr_); 15*4882a593Smuzhiyununsigned long long *tep_find_function_address*(struct tep_handle pass:[*]_tep_, unsigned long long _addr_); 16*4882a593Smuzhiyun-- 17*4882a593Smuzhiyun 18*4882a593SmuzhiyunDESCRIPTION 19*4882a593Smuzhiyun----------- 20*4882a593SmuzhiyunThese functions can be used to find function name and start address, by given 21*4882a593Smuzhiyunaddress. The given address does not have to be exact, it will select the function 22*4882a593Smuzhiyunthat would contain it. 23*4882a593Smuzhiyun 24*4882a593SmuzhiyunThe _tep_find_function()_ function returns the function name, which contains the 25*4882a593Smuzhiyungiven address _addr_. The _tep_ argument is the trace event parser context. 26*4882a593Smuzhiyun 27*4882a593SmuzhiyunThe _tep_find_function_address()_ function returns the function start address, 28*4882a593Smuzhiyunby given address _addr_. The _addr_ does not have to be exact, it will select the 29*4882a593Smuzhiyunfunction that would contain it. The _tep_ argument is the trace event parser context. 30*4882a593Smuzhiyun 31*4882a593SmuzhiyunRETURN VALUE 32*4882a593Smuzhiyun------------ 33*4882a593SmuzhiyunThe _tep_find_function()_ function returns the function name, or NULL in case 34*4882a593Smuzhiyunit cannot be found. 35*4882a593Smuzhiyun 36*4882a593SmuzhiyunThe _tep_find_function_address()_ function returns the function start address, 37*4882a593Smuzhiyunor 0 in case it cannot be found. 38*4882a593Smuzhiyun 39*4882a593SmuzhiyunEXAMPLE 40*4882a593Smuzhiyun------- 41*4882a593Smuzhiyun[source,c] 42*4882a593Smuzhiyun-- 43*4882a593Smuzhiyun#include <event-parse.h> 44*4882a593Smuzhiyun... 45*4882a593Smuzhiyunstruct tep_handle *tep = tep_alloc(); 46*4882a593Smuzhiyun... 47*4882a593Smuzhiyunvoid show_function( unsigned long long addr) 48*4882a593Smuzhiyun{ 49*4882a593Smuzhiyun const char *fname = tep_find_function(tep, addr); 50*4882a593Smuzhiyun unsigned long long fstart = tep_find_function_address(tep, addr); 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun /* addr is in function named fname, starting at fstart address, at offset (addr - fstart) */ 53*4882a593Smuzhiyun} 54*4882a593Smuzhiyun... 55*4882a593Smuzhiyun-- 56*4882a593Smuzhiyun 57*4882a593SmuzhiyunFILES 58*4882a593Smuzhiyun----- 59*4882a593Smuzhiyun[verse] 60*4882a593Smuzhiyun-- 61*4882a593Smuzhiyun*event-parse.h* 62*4882a593Smuzhiyun Header file to include in order to have access to the library APIs. 63*4882a593Smuzhiyun*-ltraceevent* 64*4882a593Smuzhiyun Linker switch to add when building a program that uses the library. 65*4882a593Smuzhiyun-- 66*4882a593Smuzhiyun 67*4882a593SmuzhiyunSEE ALSO 68*4882a593Smuzhiyun-------- 69*4882a593Smuzhiyun_libtraceevent(3)_, _trace-cmd(1)_ 70*4882a593Smuzhiyun 71*4882a593SmuzhiyunAUTHOR 72*4882a593Smuzhiyun------ 73*4882a593Smuzhiyun[verse] 74*4882a593Smuzhiyun-- 75*4882a593Smuzhiyun*Steven Rostedt* <rostedt@goodmis.org>, author of *libtraceevent*. 76*4882a593Smuzhiyun*Tzvetomir Stoyanov* <tz.stoyanov@gmail.com>, author of this man page. 77*4882a593Smuzhiyun-- 78*4882a593SmuzhiyunREPORTING BUGS 79*4882a593Smuzhiyun-------------- 80*4882a593SmuzhiyunReport bugs to <linux-trace-devel@vger.kernel.org> 81*4882a593Smuzhiyun 82*4882a593SmuzhiyunLICENSE 83*4882a593Smuzhiyun------- 84*4882a593Smuzhiyunlibtraceevent is Free Software licensed under the GNU LGPL 2.1 85*4882a593Smuzhiyun 86*4882a593SmuzhiyunRESOURCES 87*4882a593Smuzhiyun--------- 88*4882a593Smuzhiyunhttps://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 89