How can I see the assembly code for a C++ program?

Geek picture Geek · May 8, 2009 · Viewed 94k times · Source

How can I see the assembly code for a C++ program?

What are the popular tools to do this?

Answer

Employed Russian picture Employed Russian · May 8, 2009

Ask the compiler

If you are building the program yourself, you can ask your compiler to emit assembly source. For most UNIX compilers use the -S switch.

  • If you are using the GNU assembler, compiling with -g -Wa,-alh will give intermixed source and assembly on stdout (-Wa asks compiler driver to pass options to assembler, -al turns on assembly listing, and -ah adds "high-level source" listing):

    g++ -g -c -Wa,-alh foo.cc

  • For Visual Studio, use /FAsc.

Peek into the binary

If you have compiled binary,

Use your debugger

Debuggers could also show disassebly.