Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I examine assembly in Xcode 4?

I'm tuning some code that runs in a tight loop in my iPhone app and I'm curious to see the generated assembly code to see if anything looks out of the ordinary.

In Xcode 3.x, there was a Build > Show Assembly Code option in the menu, but I don't see anything in the menus or the documentation for Xcode 4.

Anyone know how to do this? I could do "gcc -S" but my understanding is that that won't be identical to how the entire project is compiled.

like image 714
Bill Avatar asked Mar 25 '11 14:03

Bill


1 Answers

The "View Disassembly" option is gone, as far as I can tell.

Here's one workaround:

  1. Build your project
  2. Open the build log, and use the search window to find the compile command that was used to build the source file you're interested in. Copy the entire build command.
  3. Open a terminal window, and cd to your project directory.
  4. Paste the build command from the build log into the terminal, and append -save-temps. Hit enter.
  5. You now have two new files, yourFile.i and yourFile.s, which are the preprocessed source and generated assembly, respectively, built exactly as they are in your project.

Alternatively, you can disassemble the built binary (or the object file resulting from your source file) using otool -tvV /path/to/binaryOrDotOFile.

Finally, if this is a feature that you would like to have back, make sure to file a bug report!

Edit: This feature is back in Xcode 4.1. In the assistant editor pane, select "Generated Output -> YourFilename (Assembly)". Boom!

like image 195
Stephen Canon Avatar answered Sep 29 '22 08:09

Stephen Canon