F-Script Anywhere With LLDB
Daniel Jalkut: Today I decided that I need to stop manually copying and pasting these commands, and I need to finally learn the slightest bit about lldb’s Python-based script commands. The fruit of...
View ArticleCrashProbe
CrashProbe (via Daniel Jalkut): CrashProbe is a crash reporting test suite presented by HockeyApp that benchmarks and compares popular iOS and Mac OS X crash reporting services. In our effort to ensure...
View ArticleThe Legacy of GOAL
Pål-Kristian Engstad: In my opinion it was due to one single idea: Interactivity. Think about it: These days we revel in the idea of hot-loading assets, changing shaders on the fly, and interacting via...
View ArticleThe Safyness of Static Typing
Marcel Weiher:That the compiler is capable of catching (some) bugs using static type checks is undeniably true. However, what is also obviously true is that not all bugs are type errors (for example,...
View ArticleCompiler Writers Gone Wild: ARC Madness
Marcel Weiher: When they turned to me, I was also initially puzzled, because all this should do on x86 is stuff a zero into %eax and return. This cannot possibly crash, so everyone just assumed that...
View ArticleSwift and Debuggability
Russell Ivanovic: Currently in Swift, those stack traces are even worse. I won’t post one until they actually release it to be fair to Apple…but why oh why when they were making a ‘modern’ programming...
View ArticleTracking Down a WebKit Crasher
Daniel Jalkut: I love it when customers take the time to write something about the circumstances surrounding a crash. Often even a little clue can be enough to lead to the unique series of steps that...
View ArticleNSAtom, the True Object
Brian Webster: In our case, if our method is returning a YES value, that will end up with a full value of 0x0000000000000001. If you try interpreting this value as an object, the runtime will think it...
View ArticleView Bridge Logging
Daniel Jalkut: This could be handy if you’re trying to work out the particulars of why or if a particular event is even reaching your extension. In fact the vast number of logging messages have often...
View ArticleReinventing AEPrintDesc
Daniel Jalkut: But when one is head-down, debugging a serious AppleEvent issue, it’s not uncommon to need to print AEDescs left, right, up, down, and diagonally. This needs to be fast-and-furious, not...
View ArticleXcode Consolation
Daniel Jalkut: Those are the basics, but another trick, I believe it was called ret in Gdb, comes in handy often: thread return – return immediately from the current stack frame You could use this if...
View ArticleObjective-C Debugging Cheat Sheet
Tim Ekl: After some nudging from coworkers, I took some time and scraped together all the various private methods I could find (as well as a few suggested on Twitter) and combined them into one...
View ArticleActivity Tracing
Florian Kugler: This year’s WWDC had an excellent session about it, but we thought it would be a good idea to give another overview here, since it is not widely known yet. The basic idea is that work...
View Articleobjc.io on Debugging
I already linked to one article of the December objc.io, but the whole issue is great. The other articles are: Debugging: A Case Study Dancing in the Debugger — A Waltz with LLDB Debugging Checklist...
View ArticleHopper + lldb for iOS Developers
Bart Cone: Have you ever wondered how people get pseduo-code of some private API like the image below? It’s actually very simple and is a great way to chase down those annoying bugs in UIKit or some...
View ArticleDocuments in the Cloud: bird and brctl
Apple’s site doesn’t yet document them, but bird is the system daemon behind iCloud documents, and brctl is the corresponding control utility (via Zachary Drayer).
View ArticleSwift Resistance
David Owens II (Open Radar): The fundamental problem with Swift, with regards to performance, is that it is impossible to reason what the performance of your code is going to be. It is impossible to...
View ArticlePrinting Objective-C Invocations in LLDB
Ari Grant: A while ago Facebook open-sourced Chisel, a collection of commands and functions to assist in debugging iOS apps in LLDB.[…] There is one command that I find particularly fun and interesting...
View ArticleLessons Learned in Software Development
Henrik Warne (via Drew Crawford): When you develop, and some tests fail, or a feature stops working, it’s much easier to find the problem if you only changed one thing. In other words, use short...
View ArticleThe One Line You Should Add to Every Makefile
John Graham-Cumming, who’s just written the GNU Make Book (Amazon): It’s: print-%: ; @echo $*=$($*) It allows you to quickly get the value of any makefile variable. For example, suppose you want to...
View Article