Live data from Hacker News

Lensm, a tool for viewing disassembly

storj.io

11–19 of 19 posts

Re: Lensm, a tool for viewing disassembly

#14
post #2

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.

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

Re: Lensm, a tool for viewing disassembly

#15
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.

Re: Lensm, a tool for viewing disassembly

#16
post #9
post #5

Earlier quoted context omitted.

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.

I tried it with C and it does not work. So I guess it is go-specific indeed.

Yeah I just tried it too. It did disassemble it and showed jumps, but no source code. It also didn't resolve calls to functions like printf.

Re: Lensm, a tool for viewing disassembly

#18
post #5
post #3

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

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.

Yeah, at the moment, unfortunately only works for Go.

But implementing a different backend (e.g. llvm-symbolizer, objdump etc.) shouldn't be too difficult. The main things it needs to do are 1. list the decompilable symbols in the file, 2. disassemble and pull in the relevant source code.

The UI part doesn't care whether it's Go or not.

Post reply on HN