A Go assembly and source viewer that visualizes machine code alongside source code for performance analysis.
lensm is a graphical tool that displays Go assembly code alongside its corresponding Go source code in a side-by-side view. It helps developers understand how their Go code translates to machine instructions, which is essential for performance optimization and debugging.
Go developers who need to analyze and optimize the assembly output of their code, particularly those working on performance-critical applications or low-level debugging.
Developers choose lensm for its intuitive visual interface that directly correlates source code with assembly instructions, live reloading for continuous analysis, and function filtering to quickly inspect specific code sections.
Go assembly and source viewer
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Displays Go source code and corresponding assembly instructions simultaneously in a graphical interface, making it intuitive to correlate high-level logic with low-level output, as shown in the screenshot.
With the `-watch` flag, lensm automatically reloads and updates the view when the executable changes, enabling continuous monitoring during development cycles.
Allows filtering functions using regular expressions via the `-filter` flag, so users can quickly isolate and inspect specific code sections without manual searching.
Works on multiple platforms and offers build tags like `--tags nowayland` or `--tags nox11` to skip graphical dependencies on Linux, accommodating various system setups.
The README explicitly states that lensm requires binaries built on your computer, so it cannot analyze pre-compiled executables or third-party libraries, limiting its use in some debugging scenarios.
On Linux, additional dependencies may be needed for graphical support, and users must manually handle Wayland or X11 issues with build tags, adding overhead to installation and usage.
lensm is exclusively for Go assembly, so it cannot be used to view or compare assembly for other languages, which restricts its utility in polyglot or cross-language projects.