Provided by: libtraceevent-doc_1.8.2-1ubuntu2_all bug

NAME

       tep_find_function, tep_find_function_address, tep_find_function_info - Find function name
       / start address.

SYNOPSIS

       #include <event-parse.h>

       const char *tep_find_function(struct tep_handle *tep, unsigned long long addr);
       unsigned long long tep_find_function_address(struct tep_handle *tep, unsigned long long addr);
       int tep_find_function_info(struct tep_handle *tep, unsigned long long addr, const char **name,
                                  unsigned long long *start, unsigned long *size);

DESCRIPTION

       These functions can be used to find function name and start address, by given address. The
       given address does not have to be exact, it will select the function that would contain
       it.

       The tep_find_function() function returns the function name, which contains the given
       address addr. The tep argument is the trace event parser context.

       The tep_find_function_address() function returns the function start address, by given
       address addr. The addr does not have to be exact, it will select the function that would
       contain it. The tep argument is the trace event parser context.

       The tep_find_function_info() function retrieves the name, starting address (start), and
       the function text size of the function at address, if it is found. Note, if the tep handle
       has a function resolver (used by perf), then size is set to zero.

RETURN VALUE

       The tep_find_function() function returns the function name, or NULL in case it cannot be
       found.

       The tep_find_function_address() function returns the function start address, or 0 in case
       it cannot be found.

       The tep_find_function_info() function returns 1 if a function is found for the given
       address, or 0 if it is not.

EXAMPLE

           #include <event-parse.h>
           ...
           struct tep_handle *tep = tep_alloc();
           ...
           void show_function_name(unsigned long long addr)
           {
                   const char *fname = tep_find_function(tep, addr);

                   if (fname)
                           printf("Found function %s at 0x%0llx\n", fname, addr);
                   else
                           printf("No function found at 0x%0llx\n", addr);
           }

           void show_function_start_addr(unsigned long long addr)
           {
                   const char *fname = tep_find_function(tep, addr);
                   unsigned long long fstart;

                   if (!fname) {
                           printf("No function found at 0x%0llx\n", addr);
                           return;
                   }

                   fstart = tep_find_function_address(tep, addr);
                   printf("Function %s at 0x%llx starts at 0x%0llx\n",
                          fname, addr, fstart);
           }

           void show_function_info(unsigned long long addr)
           {
                   const char *fname;
                   unsigned long long fstart;
                   unsigned long size;

                   ret = tep_find_function_info(tep, addr, &fname, &fstart, &size);
                   if (!ret) {
                           printf("No function found at 0x%0lx\n", addr);
                           return;
                   }

                   printf("Function %s at 0x%lx starts at 0x%0lx and is %ld in size\n",
                          fname, addr, fstart, size);
           }
           ...

FILES

           event-parse.h
                   Header file to include in order to have access to the library APIs.
           -ltraceevent
                   Linker switch to add when building a program that uses the library.

SEE ALSO

       libtraceevent(3), trace-cmd(1)

AUTHOR

           Steven Rostedt <rostedt@goodmis.org[1]>, author of libtraceevent.
           Tzvetomir Stoyanov <tz.stoyanov@gmail.com[2]>, author of this man page.

REPORTING BUGS

       Report bugs to <linux-trace-devel@vger.kernel.org[3]>

LICENSE

       libtraceevent is Free Software licensed under the GNU LGPL 2.1

RESOURCES

       https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/

NOTES

        1. rostedt@goodmis.org
           mailto:rostedt@goodmis.org

        2. tz.stoyanov@gmail.com
           mailto:tz.stoyanov@gmail.com

        3. linux-trace-devel@vger.kernel.org
           mailto:linux-trace-devel@vger.kernel.org