top | item 37822284

Lensm, a tool for viewing disassembly

156 points| jtolds | 2 years ago |storj.io

17 comments

order

vardump|2 years ago

Wow, having to stare at disassembly too often, I really like this.

Makes it much faster to follow branches and can easily see what instructions correspond to source code lines, even though it's not very exact at higher optimization levels.

This should be integrated in all IDEs.

mananaysiempre|2 years ago

With recent versions of GNU objdump, you can use --source --visualize-jumps=color and perhaps also --reloc or --dynamic-reloc for a similar experience with the native toolchain. (Unfortunately, -S/--source absolutely sucks for executables compiled at -O2.)

Other tricks include --no-addresses --no-show-raw-insn, which make the disassembly decently diffable.

PhilipRoman|2 years ago

If you don't care about source lines, I find radare2 has a really good disassembler (in graph mode)

It's meant for reverse engineering but I use it for debugging purposes too

c7DJTLrn|2 years ago

It would probably be worth mentioning that this is for Go in the title.

jcul|2 years ago

I'd imagine it would work for any binary with debug symbols, even though the tool is written in go?

Though I haven't tried it, on mobile right now.

brancz|2 years ago

Love lensm! I've used it on several occasions to teach people about inlining, bounds check removals, and other performance related topics that are best highlighted by actually seeing differences in assembly. I find it's easier for people to understand what is actually happening under the hood than just tell them "do this and it's faster".

I also highly recommend following the creator. I'm always impressed with anything Egon creates.

djmips|2 years ago

I like the name, it reminds me of Lensman - the classic sci-fi series that inspired the first video game Spacewar!

fitz-re|2 years ago

This would be great for reversing tools such as IDA and Binary Ninja!