https://github.com/core-explorer/core-explorer
A DWARF parser and core dump analyzer that runs in your browser
https://github.com/core-explorer/core-explorer
debugging-tool dwarf elf linux
Last synced: 3 months ago
JSON representation
A DWARF parser and core dump analyzer that runs in your browser
- Host: GitHub
- URL: https://github.com/core-explorer/core-explorer
- Owner: core-explorer
- License: other
- Created: 2024-05-02T23:24:08.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-10-18T22:46:09.000Z (6 months ago)
- Last Synced: 2025-10-19T12:24:45.714Z (5 months ago)
- Topics: debugging-tool, dwarf, elf, linux
- Language: HTML
- Homepage: https://core-explorer.github.io/core-explorer/
- Size: 68.1 MB
- Stars: 99
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
### Core Explorer ###
Core Explorer is a core dump analyzer.
A core dump analyzer is like a debugger that can only open core dumps.
It has no state, no commands. **You can make no mistakes.** [Try it now](https://core-explorer.github.io/core-explorer)
It presents files, types, objects, and the relationships between them.
Features:
* ELF parser for executables, shared libraries and core dumps.
* DWARF parser for debug information. Presents files, namespaces, types and variables in a manner similar to doxygen.
* supports the debuginfod protocol to download debug information
* Coredump parser:
* identify all C++ objects in memory that possess virtual methods. This works even for stripped binaries.
* identify all allocations allocated or freed by glibc malloc. This requires debug information for the C library and ld.so
* identify memory leaks and references into freed allocations (temporarily not exposed in UI until refactoring is complete)
* unwind the stack for all threads and display local variables and function parameters. Requires unwind information in the Itanium ABI, does not support compact unwind information used by 32-bit ARM.


Work in progress:
* find the shortest possible name for C++ types and functions
* using debug information, recursively follow all pointers in identified objects on the stack, heap, global variables and thread local storage
* search and queries
Limitations:
* Platform dependent features have only been implemented for x86-64 and aarch64.
* Only tested with user space applications and only on Linux, support for FreeBSD is in progress.
* If you run this in your web browser, you are limited to 2GB total memory.
* It does not have progress bars.
I have created a selection of core dumps with various problems:
* [Invalid pointer derefence](https://core-explorer.github.io/core-explorer/index-st.html?download=https://core-explorer.github.io/binary-samples/cpp-examples/x86_64-Debug-bookworm/PointerExample.gdb.core&download1=https://core-explorer.github.io/binary-samples/cpp-examples/x86_64-Debug-bookworm/PointerExample)
* [Calling a virtual function from a base class](https://core-explorer.github.io/core-explorer/index-st.html?download=https://core-explorer.github.io/binary-samples/cpp-examples/x86_64-Debug-noble/VirtualExample.gdb.core&download1=https://core-explorer.github.io/binary-samples/cpp-examples/x86_64-Debug-noble/VirtualExample)
* [leaking memory](https://core-explorer.github.io/core-explorer/index-st.html?download=https://core-explorer.github.io/binary-samples/cpp-examples/x86_64-Debug-bookworm-clang/NewExample.gdb.core&download1=https://core-explorer.github.io/binary-samples/cpp-examples/x86_64-Debug-bookworm-clang/NewExample)
* [Corrupting malloc metadata](https://core-explorer.github.io/core-explorer/index-st.html?download=https://core-explorer.github.io/binary-samples/cpp-examples/x86_64-Debug-noble/VectorExample.gdb.core&download1=https://core-explorer.github.io/binary-samples/cpp-examples/x86_64-Debug-noble/VectorExample)

## Standalone Application ##
There is also a standalone node.js application [cdx.js](README_cdx.md).
## Important: ##
*Do not leak client data by sharing core dumps.*
*Do not leak confidential information by sharing debug information.*
Core Explorer runs exclusively in your browser, all uploads happen inside your browser.
Your files are never stored anywhere. Core Explorer does not use tracking, analytics or cookies.