www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - GDC Explorer - an online disassembler for D

reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
I've met Matt Goldbolt, the author of the GCC Explorer at 
http://gcc.godbolt.org - a very handy online disassembler for GCC.

We got to talk a bit about D and he hacked together support for D by 
using gdc. Take a look at http://d.godbolt.org, I think it's pretty darn 
cool! I'm talking to him about integrating his work with our servers.


Andrei
Sep 20 2012
next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 21 September 2012 04:47, Andrei Alexandrescu
<SeeWebsiteForEmail erdani.org> wrote:
 I've met Matt Goldbolt, the author of the GCC Explorer at
 http://gcc.godbolt.org - a very handy online disassembler for GCC.

 We got to talk a bit about D and he hacked together support for D by using
 gdc. Take a look at http://d.godbolt.org, I think it's pretty darn cool! I'm
 talking to him about integrating his work with our servers.


 Andrei

That's awesome. :-) -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Sep 21 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 9/21/12, Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> wrote:
 snip

Integrating this with dpaste would be aweee..sooome!
Sep 21 2012
prev sibling next sibling parent Jacob Carlborg <doob me.com> writes:
On 2012-09-21 05:47, Andrei Alexandrescu wrote:
 I've met Matt Goldbolt, the author of the GCC Explorer at
 http://gcc.godbolt.org - a very handy online disassembler for GCC.

 We got to talk a bit about D and he hacked together support for D by
 using gdc. Take a look at http://d.godbolt.org, I think it's pretty darn
 cool! I'm talking to him about integrating his work with our servers.

That's pretty cool. -- /Jacob Carlborg
Sep 21 2012
prev sibling next sibling parent reply Jens Mueller <jens.k.mueller gmx.de> writes:
Andrei Alexandrescu wrote:
 I've met Matt Goldbolt, the author of the GCC Explorer at
 http://gcc.godbolt.org - a very handy online disassembler for GCC.

This is not a disassembler. It just stops compilation before the assembler (gcc -S). A dissembler would create the assembler code given only the machine code. But it's nice to have source code and assembly side by side. Jens
Sep 21 2012
parent Ellery Newcomer <ellery-newcomer utulsa.edu> writes:
On 09/21/2012 03:04 AM, Jens Mueller wrote:
 But it's nice to have source code and assembly side by side.

 Jens

And very nice to have demangled names in assembly.
Sep 21 2012
prev sibling next sibling parent "Bernard Helyer" <b.helyer gmail.com> writes:
On Friday, 21 September 2012 at 10:04:00 UTC, Jens Mueller wrote:
 Andrei Alexandrescu wrote:
 I've met Matt Goldbolt, the author of the GCC Explorer at
 http://gcc.godbolt.org - a very handy online disassembler for 
 GCC.

This is not a disassembler. It just stops compilation before the assembler (gcc -S). A dissembler would create the assembler code given only the machine code.

You are both correct and incredibly pedantic. :P
Sep 21 2012
prev sibling next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 21 September 2012 11:17, Bernard Helyer <b.helyer gmail.com> wrote:
 On Friday, 21 September 2012 at 10:04:00 UTC, Jens Mueller wrote:
 Andrei Alexandrescu wrote:
 I've met Matt Goldbolt, the author of the GCC Explorer at
 http://gcc.godbolt.org - a very handy online disassembler for GCC.

This is not a disassembler. It just stops compilation before the assembler (gcc -S). A dissembler would create the assembler code given only the machine code.

You are both correct and incredibly pedantic. :P

Half correct and incredibly pedantic. :-) There's two modes. One is assembler output, the other is objdump output (which is a disassembler). -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Sep 21 2012
prev sibling next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 21 September 2012 11:29, Iain Buclaw <ibuclaw ubuntu.com> wrote:
 On 21 September 2012 11:17, Bernard Helyer <b.helyer gmail.com> wrote:
 On Friday, 21 September 2012 at 10:04:00 UTC, Jens Mueller wrote:
 Andrei Alexandrescu wrote:
 I've met Matt Goldbolt, the author of the GCC Explorer at
 http://gcc.godbolt.org - a very handy online disassembler for GCC.

This is not a disassembler. It just stops compilation before the assembler (gcc -S). A dissembler would create the assembler code given only the machine code.

You are both correct and incredibly pedantic. :P

Half correct and incredibly pedantic. :-) There's two modes. One is assembler output, the other is objdump output (which is a disassembler).

And if it doesn't then I must be incredibly confused at this hour in the morning (yawns). -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Sep 21 2012
prev sibling next sibling parent Jens Mueller <jens.k.mueller gmx.de> writes:
Iain Buclaw wrote:
 On 21 September 2012 11:29, Iain Buclaw <ibuclaw ubuntu.com> wrote:
 On 21 September 2012 11:17, Bernard Helyer <b.helyer gmail.com> wrote:
 On Friday, 21 September 2012 at 10:04:00 UTC, Jens Mueller wrote:
 Andrei Alexandrescu wrote:
 I've met Matt Goldbolt, the author of the GCC Explorer at
 http://gcc.godbolt.org - a very handy online disassembler for GCC.

This is not a disassembler. It just stops compilation before the assembler (gcc -S). A dissembler would create the assembler code given only the machine code.

You are both correct and incredibly pedantic. :P

Half correct and incredibly pedantic. :-) There's two modes. One is assembler output, the other is objdump output (which is a disassembler).

And if it doesn't then I must be incredibly confused at this hour in the morning (yawns).

How do I use the objdump mode in the web interface? Jens
Sep 21 2012
prev sibling next sibling parent "bearophile" <bearophileHUGS lycos.com> writes:
Andrei Alexandrescu:

 I've met Matt Goldbolt, the author of the GCC Explorer at 
 http://gcc.godbolt.org - a very handy online disassembler for 
 GCC.

 We got to talk a bit about D and he hacked together support for 
 D by using gdc. Take a look at http://d.godbolt.org, I think 
 it's pretty darn cool! I'm talking to him about integrating his 
 work with our servers.

It's a nice idea. I'd like a way to filter the output to the disassembly of just one (or few) functions, because otherwise the output risks being too much large. At my second try I have received this, I don't know why: <No output: Error: Command failed: cat: /tmp/gcc-explorer-compiler11285-17644-1vcygvl/output.S: No such file or directory core.exception.AssertError /usr/include/d2/4.6/std/stdio.d(989): Bug in File.readln

Bye, bearophile
Sep 21 2012
prev sibling next sibling parent "bearophile" <bearophileHUGS lycos.com> writes:
 I'd like a way to filter the output to the
 disassembly of just one (or few) functions, because otherwise 
 the output risks being too much large.

It seems even this program produces a too much long asm listing for the site: import std.stdio; void main() { writeln("%f", 1.5); } Bye, bearophile
Sep 21 2012
prev sibling next sibling parent "bearophile" <bearophileHUGS lycos.com> writes:
 It seems even this program produces a too much long asm listing 
 for the site:

 import std.stdio;
 void main() {
     writeln("%f", 1.5);
 }

Compiled with: -O0 -march=native Bye, bearophile
Sep 21 2012
prev sibling next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 21 September 2012 14:49, bearophile <bearophileHUGS lycos.com> wrote:
 It seems even this program produces a too much long asm listing for the
 site:

 import std.stdio;
 void main() {
     writeln("%f", 1.5);
 }

Compiled with: -O0 -march=native Bye, bearophile

Curse those templates. ;-) -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Sep 21 2012
prev sibling next sibling parent Jens Mueller <jens.k.mueller gmx.de> writes:
Ellery Newcomer wrote:
 On 09/21/2012 03:04 AM, Jens Mueller wrote:
But it's nice to have source code and assembly side by side.

Jens

And very nice to have demangled names in assembly.

You can pipe your assembly code to ddemangle if there is some other tool that missing demangling. I did this for example when I looked at output from a statistical profiler. Jens
Sep 21 2012
prev sibling parent "nazriel" <spam dzfl.pl> writes:
On Friday, 21 September 2012 at 07:40:11 UTC, Andrej Mitrovic 
wrote:
 On 9/21/12, Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> 
 wrote:
 snip

Integrating this with dpaste would be aweee..sooome!

http://dpaste.dzfl.pl/news/change-log---v0.82 Those are in plans for all compilers but atm, we are struggling with problem of exceeding monthly bandwidth. Disassemble output takes a lot of space Anyways, I like design of this website! Very similar to dpaste, which rox ;> Looks very nice, probably we could adapt some ideas to dpaste, like __Compiler options__
Sep 21 2012