Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add disassembler #331

Open
osandov opened this issue Jul 5, 2023 · 1 comment
Open

Add disassembler #331

osandov opened this issue Jul 5, 2023 · 1 comment
Labels
enhancement New feature or request

Comments

@osandov
Copy link
Owner

osandov commented Jul 5, 2023

This is one of the most common missing features that I have to reach to another tool like GDB for. It'd be much more convenient to do it directly from drgn without having to start another tool up, find where the debugging information is, etc.

We can probably just find a good library to use. The MVP would be an API for disassembling functions and/or arbitrary memory. In the future, it'd be really cool to intermingle the disassembly with an interpretation of the DWARF location descriptions for arguments/local variables.

@osandov osandov added the enhancement New feature or request label Jul 5, 2023
@brenns10
Copy link
Contributor

brenns10 commented Jul 5, 2023

Crush uses something called capstone, which appears to work well and have Python bindings.

Another choice would be binutils, which provides libopcode. But I don't know how the python support is there. Python bindings may not be a high priority if the support is worked into libdrgn itself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Todo
Development

No branches or pull requests

2 participants