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 a binary
If you have a compiled binary,
- use
objdump -d a.out
on UNIX (also works for cygwin), dumpbin /DISASM foo.exe
on Windows.
Use your debugger
Debuggers could also show disassembly.
- Use
disas
command in GDB.
Useset disassembly-flavor intel
if you prefer Intel syntax. - or the disassembly window of Visual Studio on Windows.