Quantcast
Channel: Debugging – Michael Tsai
Browsing all 170 articles
Browse latest View live

Debugging 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 Article


Address 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 Article


Shipping 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 Article

Type 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 Article

Bitcode 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 Article


MallocNanoZone=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 Article

iOS 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 Article

The 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 Article


Not 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 Article


The 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 Article

Little 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 Article

Tracking 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 Article

Swift 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 Article


On 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 Article

A 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 Article


stringdups: 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

No More Logs for Missing NSAutoreleasePool

Uli Kusterer: So apparently Apple removed the “object autoreleased with no pool in place” error message. Chris Nebel: Not removed, but disabled by default. Set OBJC_DEBUG_MISSING_POOLS=YES to get it...

View Article


Xcode Memory Graph Debugger Tips

Brent Simmons: Lines between objects have a label. A line represents a reference. Click on the label to see if the reference is strong or weak or unknown and what the source and destination are. Don’t...

View Article

Undocumented Xcode Sanitizer Settings

Peter Steinberger (tweet): Here’s what I gobbled together based on Google; mostly thanks to WebKit being open source. (I only tested CLANG_ADDRESS_SANITIZER so far, but based on Google the other flags...

View Article

Sierra Log Littering

Daniel Jalkut: Apple has dramatically revamped its standard logging mechanism. Unified Logging, available in macOS 10.12 and iOS 10, replaces various file-based logging approaches with a centralized,...

View Article
Browsing all 170 articles
Browse latest View live