How can I see the assembly code for a C++ program?
What are the popular tools to do this?
If you are building the program yourself, you can ask your compiler to emit assembly source. For most UNIX compilers use the
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
If you have compiled binary,
objdump -d a.outon UNIX (also works for cygwin),
dumpbin /DISASM foo.exeon Windows.
Debuggers could also show disassebly.
disascommand in GDB,
In GCC/G++, compile with
-S. That will output a
something.s file with the assembly code.
Edit: If you want the output to be in Intel syntax (which is IMO, much more readable, and most assembly tutorials use it), compile with