Inspect a file
glaurung symbols
List symbols, imports, exports, and linked libraries.
use it for
Symbols come from the file. Stripped binaries may expose little more than imports and dynamic symbols.
Run glaurung symbols --help on your installed version before putting the command in a script.
Glaurung is still pre-1.0.
- input
- One binary with whatever static or dynamic symbol data survived the build.
- output
- Symbols, imports, exports, and linked-library names. A stripped file can return only dynamic entries.
- mode
- read only. The examples leave the input unchanged.
command shape
syntax
$ glaurung symbols PATH [--filter FILTER] [--limit N]
The installed parser is authoritative: glaurung symbols --help
run it
examples
List the small fixture
Debug builds make the difference between file symbols and imported symbols easy to see.
run
$ glaurung symbols samples/binaries/platforms/linux/amd64/export/native/clang/debug/hello-c-clang-debug --limit 8 output
all: 8
Scrt1.o
_DYNAMIC
_GLOBAL_OFFSET_TABLE_
_IO_stdin_used
dynamic: 7
__cxa_finalize
__libc_start_main
printf
strlen
libs: 2
/lib64/ld-linux-x86-64.so.2
libc.so.6 captured output, shortened.
Read the result: The all group includes file and linker symbols. The dynamic group is what a stripped ELF usually leaves behind.
Find one imported API
Search after filtering when a large library has thousands of symbols.
run
$ glaurung symbols /usr/bin/curl --filter imports --search SSL --limit 30 output
imports: 2
curl_easy_ssls_export
curl_easy_ssls_import captured from the Ubuntu development host, 2026-08-31.
Read the result: The filter matches symbol names, not every TLS-related call the program may make. Follow the two imports into their callers before drawing a conclusion.
Read Mach-O symbols
The Darwin fixture shows Mach-O's leading-underscore symbol convention without requiring macOS as the host.
run
$ glaurung symbols samples/binaries/platforms/darwin/amd64/export/native/multi_import-macho --limit 20 output
all: 9
__dyld_private
__mh_execute_header
_free
_main
_malloc
_printf
_puts
_strlen
dyld_stub_binder
exports: 2
__mh_execute_header
_main captured from the checked-in x86_64 Mach-O fixture, 2026-08-31.
Read the result: Mach-O prefixes ordinary C names with an underscore. Search for _main or _printf in this file rather than assuming ELF naming rules.
used above
important options
These are the flags used by the examples. Run glaurung symbols --help for the complete parser help.
keep working