Reveal 2
Sean Woodhouse: With this release we’re changing the way Reveal is versioned and licensed. We’re switching to a model where we release features as they are ready rather than holding them back for major...
View ArticleReversing Apple’s syslogd Bug
fG (via Hacker News): While Apple makes available the source code for many components used in OS X, most of the time there is a significant delay so we need to use binary diffing to find out the...
View ArticleSwift’s dump()
Shaps (via iOS Dev Weekly): ProTip: Why debug with print when you can dump? dump uses Mirror for introspection.
View ArticleSystem Level Breakpoints in Swift
Daniel Jalkut (tweet): So, as a rule, Swift programmers who want to be advanced debuggers on iOS or Mac platforms, also need to develop an ability for mapping Swift method names back to their...
View ArticleiOS Background Transfer
Agnes Vasarh (tweet): Memory consumption is not the only factor when iOS is judging your app. What also counts is the time your app spends executing in the background and the number of times it wants...
View ArticlemacOS 10.13.3
Apple (Hacker News): The macOS High Sierra 10.13.3 improves the security and stability of your Mac, and is recommended for all users. This update: Addresses an issue that could cause Messages...
View ArticleSwift’s Reflective Underpinnings
Joe Groff (via Helge Heß): People tend to think of static typing and Reflection as being diametrically opposed. But ultimately, I think we can come up with designs that marry the best aspects of both....
View ArticleDebugging NSNotificationCenter and NSRunLoop
Tim Ekl: The debugDescription property has been around for quite awhile. Formally first appearing as a @property on NSObject in iOS 5 and macOS 10.8, it came across into Swift as a member of the...
View ArticleSolving a Mysterious Heap Corruption Crash
Agnes Vasarhelyi (tweet, via Alexis Gallagher): I removed every third-party dependency, to exclude the possibility that the problem is not in our code. […] Move suspicious pieces to an empty project...
View ArticleSmart Debugging
Peter Steinberger (tweet): Debugging can be exciting, but often also very, very frustrating. In this talk, I’ll show you some lesser-known tools and techniques to find problems faster and make the...
View ArticleNSDoubleLocalizedStrings and Friends
The NSDoubleLocalizedStrings user default is a reasonably well-known and officially documented localization debugging aide. It repeats the text of each localized string, making it double-length so that...
View ArticleCharles Proxy for iOS
XK72 (tweet, Hacker News): We are excited to announce that Charles Proxy is now available on iOS!With the iOS version of Charles you can capture and inspect network requests and responses on your iOS...
View ArticleWWDC 2018 Links
General: Keynote (Hacker News) The Developer Migration (via CNET) Schedule Videos Beta Downloads (Xcode 10, Xcode 10 Release Notes) Videos Downloader and App Sample Code Downloader David Sinclair’s...
View ArticleInstalling and Debugging on Mojave
Howard Oakley: Many developers are reporting that they have been unsuccessful in getting the initial beta-release of macOS 10.14 Mojave to install on external drives. In many cases, they are connecting...
View ArticleThe Unified Log in macOS Mojave: Signposts and Instruments
Howard Oakley: Mojave is set to offer no respite or solution for the system administrator or advanced user. Console and the log command may have gained a few tweaks, but there are no signs of their...
View ArticleDebugging With C-Reduce
Mike Ash (Hacker News): Debugging a complex problem is tough, and it can be especially difficult when it’s not obvious which chunk of code is responsible. It’s common to attempt to produce a reduced...
View ArticleFinding What Code Triggered a Log Message
Daniel Jalkut: What this does is add a series of commands that will be run automatically by lldb whenever breakpoint 5 (the one I just set) is hit. This applies to any of the 634 locations that are...
View ArticleVisualizing Pointer Addresses as Emoji
Jason Pepas: I often print pointer addresses as emoji. Handy when debugging issues related to UITableViewCell reuse etc. It’s much easier to recognize 🎃 in a log than 0x00007fa2ec033200. Here’s his...
View ArticleCodeRunner 3
Nikolai Krill: The all-new documentation sidebar lets you browse the online docs for your programming language without ever leaving the app. […] The editor has been enhanced with lots of new features....
View ArticleDebugging Dyld
Alex Denisov: Recently, I was debugging an interesting issue: a program crashes whenever it tries to call a particular function from a dynamic library. It was not clear how to debug this issue....
View ArticleProblems With os_log
BJ Homer: Is there anyone outside Apple who finds the new logging system useful? Seems like it’s annoying and actively intrusive for external developers. The os_log features are useful to Apple, but...
View ArticleHigh Memory Use With Vapor and MySQL
Tanner (via Ilja A. Iwas): MySQL 3.2.4 has been tagged with a fix that reduces peak memory usage by 10-15x for the sample project. See vapor/mysql#232 if you’re interested to see what was...
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 ArticleDebugging Universal Links
TN3155: To test your universal links behavior, paste a link into your Notes app and long-press it (iOS) or control-click it (macOS) to see your options for following the link. If universal links have...
View ArticleWhat Happened to __crashreporter_info__?
Seth Willits (in 2022): The new “ips” crash reports in macOS do not contain assert() information!(Assertion failed: (myVar != nil), function fooBarTest(), file code.m, line 100)Problematic because...
View ArticleOn-Crash Backtraces in Swift
Alastair Houghton: Prior to Swift 5.9, all you would get when your program fails is a message from the parent process (often the shell) telling you that the child process crashed[…] […] Now, instead of...
View ArticleMacSymbolicator 2.6
Mahdi Bchatnia (via Daniel Jalkut): A simple Mac app for symbolicating macOS/iOS crash reports.Supports symbolicating:.crash and .ips crash reportssample and spindump reports
View ArticleMaking Friends With AttributeGraph
Saagar Jha: If you’ve used SwiftUI for long enough, you’ve probably noticed that the public Swift APIs it provides are really only half the story. Normally inconspicuous unless something goes...
View Article_eventFirstResponderChainDescription
Stephan Casas: AppKit includes a private category on NSApplication that adds _eventFirstResponderChainDescription — a string describing the current responder chain. This can be a really useful...
View ArticleCloudKit Throttles and Debugging
TN3162: The CloudKit infrastructure is shared by all apps and services. The resources are finite, and so high utilization from one app can negatively affect others. To avoid this kind of impact and...
View ArticleRounded Quick Look Corners
Robin Allen (via Hacker News): For whatever reason, QuickLook will now remove the corners of your images before showing them to you.It doesn’t matter if they’re photos, game assets, or UI elements...
View ArticleChromium Browsers Preferencing *.google.com Domains
Simon Willison (Hacker News): It turns out Google Chrome (via Chromium) includes a default extension which makes extra services available to code running on the *.google.com domains - tweeted about...
View ArticleXcode 16 Announced
Apple: Discover the latest productivity and performance improvements in Xcode 16. Learn about enhancements to code completion, diagnostics, and Xcode Previews. Find out more about updates in builds and...
View Article