---
name: "tep_find_function"
section: "3"
platform: "linux"
package: "libtraceevent"
version: "1:1.9.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/tep_find_function"
---

# tep\_find\_function(3)

Find function name / start address.

## 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)](/libtraceevent/3.md), [**trace-cmd**(1)](/trace-cmd/1.md)

## 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
