function::symdata - Linux


symdata is a command-line utility for extracting debug symbols from binary files. It operates on both ELF and Mach-O formats, allowing developers to inspect and analyze the compiled code and its symbols. By using symdata, programmers can gain valuable insights into the structure, organization, and behavior of their software.


symdata <options> <files>


  • -o, –output-file <file>: Specify the output file path.
  • -f, –format <format>: Choose the output format (default: JSON). Options include:
    • JSON
    • XML
    • YAML
  • -t, –type <type>: Filter symbols by type (default: all). Options include:
    • function
    • data
    • file
    • section
  • -a, –arch <arch>: Specify the target architecture.
  • -L, –library-path <path>: Add a directory to the library search path.
  • -e, –exclude <pattern>: Exclude symbols matching the given regex pattern.
  • –version: Display version and license information.
  • –help: Show help menu and exit.


Extract debug symbols from an ELF binary:

symdata -f json my_binary.elf

Extract function symbols only from a Mach-O binary:

symdata -t function -f xml

Exclude symbols containing a specific string:

symdata -e "_init|exit"

Common Issues

  • Missing debug symbols: Ensure that the binary has debug information compiled.
  • Invalid architecture: Make sure the --arch option matches the binary’s architecture.
  • Permission denied: Check file permissions and use sudo if necessary.


symdata can be integrated into CI/CD pipelines to automate symbol extraction and analysis. It can also be combined with tools like DWARF Analyzer and GDB to facilitate deep debugging and code exploration.

Related Commands

  • objdump
  • gdb
  • addr2line