Under the Bridge

Assembly Dissembling

Yowza. It has been quite a while, hasn’t it? No, we haven’t been off on one of our little jaunts, or been indisposed for any reason; we’ve made some sea changes that kept us so busy the last 26 days that no, we actually could not spare ten minutes anywhere to splatter out a note of the day tidbit for you.

See, for a little while now we’d had this feeling of … not dissatisfaction exactly, perhaps “languor” would be the most apropos, that we were pretty much at the limit of what a single developer can manage; and couldn’t really see a way forward that didn’t involve spending more time as management and less time on the fun stuff. A conundrum, indeed. And, well let’s just skip right ahead to now: for the last month and a bit we’ve been working full time at Atimi Software, purveyor of development services behind a great variety of iOS (and those other, lesser, mobile OSes too) apps. And quite entertaining it has been on a wide variety of fronts; won’t be able to share client work there as freely as our own, but we can tell you that the just released Canucks iPad app had a smattering of our tweaks make it into the release, which gives you an indication of what the plans we’re going with there are. And those plans are grand.

(And hey, if Atimi sounds like a fun place to work to you too, why yes they are hiring in every department. And we personally guarantee your utter lack of boredom, going by all indications thus far.)

But enough about us; you’re here for the iOS tips, we know, and the standouts we noted during our little hiatus are — as always, really — from the blog of Mike Ash, where there’s been three in a row worth reading to get your head waaaaay down as far as one can go into code:

Friday Q&A 2011-12-02: Object File Inspection Tools

Being able to see all stages of your work can be immensely helpful when debugging a problem. Although you can get a lot done only looking at the source code and the app’s behavior, some problems benefit immensely from being able to inspect the preprocessed source code, the assembly output from the compiler, or the final binary. It can also be handy to inspect other people’s binaries. Today, I want to talk about various tools you can use to inspect binaries, both your own and other people’s…

Friday Q&A 2011-12-16: Disassembling the Assembly, Part 1

My last post touched a bit on disassembling object files, and Gwynne wanted to dive deeply into just how to read the output in detail. Without further ado, I present her wonderful in-depth look at reading x86_64 assembly…

Friday Q&A 2011-12-23: Disassembling the Assembly, Part 2

In last week’s article, I discussed the x86_64 architecture and the disassembly of the main function of Mike’s example code. This is part 2, in which I look at the differences in optimized code, disassembly of the rest of the sample code, the start runtime function, and some functions that work with floating-point values…

Yep, the idea of reading x86 assembly has a certain Back To The 80s vibe, but hey sometimes nothing else will do!

h/t: @objectivec!

UPDATES:

Friday Q&A 2011-12-30: Disassembling the Assembly, Part 3: ARM edition

Friday Q&A 2012-01-06: The Hopper Disassembler

2