LLVM’s New libFuzzer
Kostya Serebryany:Fuzzing (or fuzz testing) is becoming increasingly popular. Fuzzing Clang and fuzzing with Clang is not new: Clang-based AddressSanitizer has been used for fuzz-testing the Chrome...
View ArticleNSShowUnalignedViews
Ken Ferry: pass -NSShowUnalignedViews YES to get colored drawing around non-px-integral views
View ArticleAn @import-ant Change in Xcode
Craig Hockenberry:Buried deep within the Xcode 6.3 release notes there is a true gem that can relieve this daily frustration.LLDB’s parser for Objective-C can now go through any module used in your app...
View ArticleDebugging launchd
wuntee.sexy (via Hacker News): The reason I had an interest in debugging launchd is because I had been able to trigger some crashes. launchd is like init for linux; the kernel spawns it as PID 1 and...
View ArticleDebugging Exceptions in Xcode
Natasha Murashev: Just type po $arg1 into the debug area to get the human-readable version of the error (in this case, the nib is invalid) […] Finally, you can add the po $arg1 command to your...
View ArticleAddress Sanitizer
WWDC 2015 Session 413 (video, PDF): Address Sanitizer is an LLVM tool for C-based languages, that serves the same purpose as Guard Malloc, as it finds memory errors at runtime, however, it has a lot of...
View ArticleShipping an App With App Transport Security
Tim Ekl (tweet): This article is aimed at a different purpose: to look at the different speed bumps that can show up while building an app alongside ATS, and to explain how to get around them. There...
View ArticleType Profiling and Code Coverage Profiling for JavaScript
Saam Barati: Web Inspector now has two great tools designed to make debugging JavaScript programs easier: the Code Coverage Profiler and the Type Profiler. The Code Coverage Profiler visually displays...
View ArticleBitcode Breaks 3rd-Party Crash Reporters
HockeyApp (via Landon Fuller and Andreas Linde): It is currently not possible to support crash reports from builds using Bitcode. When uploading an app to the App Store and leaving the “Bitcode”...
View ArticleMallocNanoZone=1 Makes for Hard Debugging
Gus Mueller: Then it happened again, and I found a pretty reliable way to reproduce it. But again I wasn't running from Xcode and when I launched it from Xcode I couldn't reproduce it. […] So what does...
View ArticleiOS Diagnostics & Usage Data
Joe Caiati: Pre-iOS 8, you could have found this is section under Settings → General → About → Diagnostics & Usage, but now it lives in Settings → Privacy → Diagnostics & Usage. I would liken...
View ArticleThe Depressing Effect of Bug Bounties
Jacob Torrey (via Gwynne Raskind): By artificially deflating the cost of finding and fixing bugs in operation/shipped product through monopolistic means, bug bounties remove the economic incentive to...
View ArticleNot Your Mac, Anymore
Mike Ash: I can’t attach to TextEdit because of system integrity protection? @millenomi: the point of the thing is to prevent software to do damage to the system where a user gave their admin password....
View ArticleThe Unbugged Sessions Part 1
Eloy Durán (tweet): In this post I’ll take you through a debugging session where I reproduce a crash, for which we were receiving a bunch of crash reports, but I was unable to reproduce by just using...
View ArticleLittle Things That Can Make Your Life Easier
Krzysztof Zabłocki: There is much more you can do with [breakpoints], e.g. you can elevate your custom breakpoint to User Breakpoint and have them work in all your projects, why would you do that?...
View ArticleTracking Tasks With Stack Traces in Swift
Matt Gallagher: Instead of using log files to track asynchronous tasks, I prefer to use a structure that I call a “task journal”. […] We’d have a bit more flexibility if we could use the C function...
View ArticleSwift Asserts
Mike Ash (comments): Some people prefer to only have asserts in debug builds, under the theory that it’s good to have checks when debugging, but it’s best not to crash the app out in the real world...
View ArticleOn Flexible Systems
Gerald Jay Sussman (video): Most systems we build work well for the application that they were designed for, but they are brittle in that adapting to even small changes in the problem requires large...
View ArticleA Tale of Two Optimizers
Daniel Jalkut: Today, Apple got back to me with a followup, suggesting rather gently that I may have neglected to disable optimization in my target. Rookie move! The kind of behavior I was seeing in...
View Articlestringdups: Identify Duplicate Strings or Other Objects
stringdups (via David Smith): stringdups examines the content of malloc blocks in the specified target process. For all blocks which have the same content, it shows a line with the number of such...
View Article