# Traversing functions in IDA

**URL:** <https://community.hex-rays.com/t/traversing-functions-in-ida/737>\
**Category:** IDA General\
**Created:** [June 18, 2026, 6:57pm UTC](https://community.hex-rays.com/t/traversing-functions-in-ida/737 "2026-06-18T18:57:18Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![alex](https://avatars.discourse-cdn.com/v4/letter/a/db5fbb/32.png) [@alex](https://community.hex-rays.com/u/alex)\
**Post date:** [June 18, 2026, 6:57pm UTC](https://community.hex-rays.com/t/traversing-functions-in-ida/737/1 "2026-06-18T18:57:18Z")

</div>

hi

I was wondering if these tasks could be assigned with hotkeys:

- copy a named func’s address
- go to address by name e.g: myfunc+0x42
- go to address by module offset; like in x64dbg “:$+0x1234”

---

<div class="post-metadata">

**Author:** ![teresa\_hexrays](https://sea2.discourse-cdn.com/flex002/user_avatar/community.hex-rays.com/teresa_hexrays/32/11_2.png) [@teresa\_hexrays](https://community.hex-rays.com/u/teresa_hexrays)\
**Post date:** [June 24, 2026, 11:39am UTC](https://community.hex-rays.com/t/traversing-functions-in-ida/737/2 "2026-06-24T11:39:42Z")

</div>

Hi @alex ,  
So, to summarize:

- go to address by name: This is already supported out of the box through the **Jump Anywhere** dialog (Jump → Jump Anywhere), which can be invoked with the `G` hotkey
- go to address by module offset: Jump Anywhere can also evaluate expressions - see [Expression-Language Identifiers](https://docs.hex-rays.com/9.4/core/user-interface/concepts/jump-anywhere#expression-language-identifiers) (although this is probably not the most convenient solution).
- Regarding the first query: If you mean copying a function name to the clipboard, we currently don’t have the built-in action for this, but it can be implemented as an IDAPython script. Here’s an example:

```auto
import ida_idaapi
import ida_funcs
import ida_name
import ida_ida
import ida_kernwin

from PySide6 import QtWidgets

ACTION_HOTKEY = "Ctrl-Shift-Q"

def copy_current_function_name():
    ea = ida_kernwin.get_screen_ea()
    if ea == ida_idaapi.BADADDR:
        ida_kernwin.warning("No current address")
        return

    func = ida_funcs.get_func(ea)
    if func is None:
        ida_kernwin.warning(f"No function at {ea:#x}")
        return

    name = ida_funcs.get_func_name(func.start_ea)
    if not name:
        name = ida_name.get_ea_name(func.start_ea)

    # In case you want to keep the mangled name, remove this
    demangled = ida_name.demangle_name(
        name, ida_ida.inf_get_short_demnames())
    if demangled:
        name = demangled

    QtWidgets.QApplication.clipboard().setText(name)
    ida_kernwin.msg(f"Copied function name to clipboard: {name}\n")

class copy_func_name_plugin_t(ida_idaapi.plugin_t):
    flags = ida_idaapi.PLUGIN_KEEP
    comment = "Copy current function's name to clipboard"
    help = "Copies the name of the function at the current EA to the clipboard"
    wanted_name = "Copy function name to clipboard"
    wanted_hotkey = ACTION_HOTKEY

    def init(self):
        return ida_idaapi.PLUGIN_KEEP

    def run(self, arg):
        copy_current_function_name()

    def term(self):
        pass

def PLUGIN_ENTRY():
    return copy_func_name_plugin_t()

```
