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 ArticleXcode 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 ArticleProxyman 1.4.3
Proxyman (via Felix Krause): Proxyman is a high-performance macOS app, which enables developers to view HTTP/HTTPS requests from apps and domains. […] Organize your workflow by drag, drop and pin...
View ArticleDebugging the Responder Chain
Jeff Nadeau: Maybe this will make it easier to see what’s up w/ the responder chain. Pause in the debugger and run (lldb) e -- (void)[[[NSClassFromString(@"NSDebugMenuResponderChainProvider") alloc]...
View ArticleDrinking the SK8 Kool-Aid
Cameron Esfahani (thread, via Daniel Jalkut): One day my boss asked me to fly down to LA for the day. Apparently there was a developer there working on an app showcasing QuickDraw GX. […] And right...
View ArticleKVO, My Enemy
Brent Simmons: One of the keys to the stability of the shipping versions of NetNewsWire is that we don’t allow KVO (Key-Value Observing). KVO is a false convenience — it’s often easier than setting up...
View ArticleProfiling Mac Unit Tests
Ilja A. Iwas: Mac Devs: Is it just me, or is the “Profile ‘Test XYZ’” command in Xcode 11.3 broken? Instruments launches the main app, but does not run any tests. 🤷♂️ He’s filed bug FB7543911. There...
View ArticleWriting Command Line Interfaces for iOS Apps
Guilherme Rambo: There are countless ways to go about creating a better environment for debugging and iteration while working in iOS apps, such as using launch arguments, environment variables, or...
View ArticleMacintosh Y2020
Basal Gangster (via Keith Kaisershot, Hacker News): Macintosh clock time expires at 06:28:16 GMT Monday February 6, 2040. That’s going to be a problem for users of the old Macintosh, but it is a...
View Articleswiftdt (Swift Debug Tool)
Mike Ash (via Joe Groff): This is a tool which can inspect a Swift process and dump information about the Swift runtime in that process. It currently supports inspecting two kinds of information: It...
View ArticleReverse Engineering macOS 11.0
Apple: New in macOS Big Sur 11 beta, the system ships with a built-in dynamic linker cache of all system-provided libraries. As part of this change, copies of dynamic libraries are no longer present on...
View ArticleKaleidoscope 2.4.1
Filipe Espósito: After a long period without major updates, Kaleidoscope has been acquired by Letter Opener GmbH, which is now committed to providing regular updates to the app with new features....
View ArticleXcode 13 Column Breakpoints
Keith Harrison: Command-clicking on the symbol shows the code actions menu where you can set a column breakpoint[…] Xcode shows the breakpoint as a small carat at the column in the source code[…] […]...
View ArticleHow to Find Why a SwiftUI View Is Updating
Luca Bernardi (via Dave Verwer): SwiftUI has a new, pretty cool, debugging utility to help you understand what is causing a view to be reevaluated. Call Self._printChanges() inside the body of a view...
View ArticleiOS Development Tips
Rony Fadel (tweet): How to QuickLook an object in Xcode if you only have its address […] How to demangle Swift symbols […] Asserting on which queue your code is running […] Reading a [SwiftUI] view’s...
View ArticleDisabling Exception Breakpoint When Running Unit Tests
Brian Webster: The problem is that I usually have Xcode’s built-in “All Exceptions” breakpoint enabled when debugging my application, but when I run unit tests in Xcode, I have certain unit tests that...
View ArticleDebug Printing in Swift
Jordan Morgan: For debugPrint()… Things look a little bit different. Its output is strikingly similar to the print(), but it has a fully qualified print out.[…]However, if the type doesn’t conform to...
View ArticleSubclassing for Debugging
Paul Samuels: A really useful trick when debugging is to subclass the thing you are interested in just to make it easier to search for inside the various debugging tools. […] There are plenty more...
View ArticleLimiting Swift Concurrency’s Cooperative Pool
Alejandro Martinez: In Swift Concurrency all your async code runs in a cooperative thread pool, unless you are using Actors (or in the future custom Executors, but that’s a topic for another day). The...
View ArticleDTrace at 20
Bryan Cantrill: Two decades ago today, DTrace integrated into the operating system. Much has changed in the last 20 years -- but one thing has remained true: we ourselves still use it on a daily...
View Article