NSBlog
"A failure in the hot air department"
Showing entries tagged "assembly". Full blog index.
Friday Q&A 2017-08-25: Swift Error Handling Implementation
at 2017-08-25 13:13
Swift's error handling is a unique feature of the language. It looks a lot like exceptions in other languages, but the syntax is not quite the same, and it doesn't quite work the same either. Today I'm going to take a look at how Swift errors work on the inside.
Friday Q&A 2017-06-30: Dissecting objc_msgSend on ARM64
at 2017-07-01 04:23
We're back! During the week of WWDC, I spoke at CocoaConf Next Door, and one of my talks involved a dissection of
objc_msgSend
's ARM64 implementation. I thought that turning it into an article would make for a nice return to blogging for Friday Q&A.Friday Q&A 2014-05-09: When an Autorelease Isn't
at 2014-05-09 13:59
Welcome back to another Friday Q&A. I apologize for the unannounced hiatus in posts. It's not due to anything interesting, just a shortage of time. Friday Q&A will continue, and I will continue to aim for my regular biweekly postings. For today's article, I have a little story about an
autorelease
call that didn't do what it was supposed to do.Tales From The Crash Mines: Issue #1
at 2014-02-06 14:53
Today's post comes courtesy of Landon Fuller, who you may remember from a previous guest post about mach exception handlers. Landon is a fellow member at Plausible Labs, and today he presents the first in what is intended to be a running series on interesting crashes we encounter in our work.
Friday Q&A 2013-06-28: Anatomy of a Compiler Bug
at 2013-06-28 13:04
Some people have a favorite color or a favorite food. It may come as no surprise that I have a favorite compiler bug. Today, I'm going to demonstrate it and pick it apart, a topic suggested by reader Daniel Jalkut.
Friday Q&A 2012-11-30: Let's Build A Mach-O Executable
at 2012-11-30 17:59
This is something of a followup to my last article, dyld: Dynamic Linking On OS X, in which I explored how the dynamic linker
dyld
does its job. This week, I'm going to recreate the function of both the compiler and the static linker, building a Mach-O binary completely from scratch with only the help of the assembler.Friday Q&A 2012-11-09: dyld: Dynamic Linking On OS X
at 2012-11-09 15:51
In the course of a recent job interview, I had an opportunity to study some of the internals of
dyld
, the OS X dynamic linker. I found this particular corner of the system interesting, and I see a lot of people having trouble with linking issues, so I decided to do an article about the basics of dynamic linking. Some of the deeper logic is new to me, so sorry in advance for any inaccuracies.Friday Q&A 2011-12-30: Disassembling the Assembly, Part 3: ARM edition
at 2011-12-30 21:44
Gwynne finishes off her series on analyzing assembly code with a look at ARM assembly, for all of your iOS needs. Gwynne will be contributing the occasional article in the future as well as a guest author, without my introductions. Watch the Author field at the top of the post to see who's writing what. Without further ado, let's take a look at ARM.
Friday Q&A 2011-12-23: Disassembling the Assembly, Part 2
at 2011-12-23 20:48
Today I have the pleasure to present the followup to last week's guest post. Gwynne Raskind returns to complete her in-depth analysis of the assembly code generated by a small sample program.
Friday Q&A 2011-12-16: Disassembling the Assembly, Part 1
at 2011-12-16 15:02
As a small change of pace, today's post is written by guest author Gwynne Raskind. 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 2010-02-12: Trampolining Blocks with Mutable Code
at 2010-02-12 18:20
Welcome to another edition of Friday Q&A, where deep technical talk and complete insanity combine! This week, I'm going to take a quick break from my usual reader-driven format and talk about a little toy I built earlier in the week, an adapter between blocks and more traditional function-pointer-based callback systems.