Hugo Hacker News

A few useful Xcode debugging tricks

3grdlurker 2021-08-17 10:51:39 +0000 UTC [ - ]

I love this technique, but it can be very slow for large apps that have a less-than-ideal state of code cleanliness or architecture-and I assume that most apps fall under that category.

For tracking gesture and scrolling events, though, breakpoint debugging is outright impossible to work with, and good ol’ print statements are still the best tools for the job.

Veserv 2021-08-17 19:52:17 +0000 UTC [ - ]

At that point you should just turn on your IDE’s time travel debugging configuration or at the very least its full execution trace configuration. No point fumbling around trying to figure out what happened if you are rebuilding anyways.

stinos 2021-08-17 11:04:11 +0000 UTC [ - ]

good ol’ print statements are still the best tools for the job

Apart from breakpoints debuggers (just not lldb if I'm not mistaken) can also support 'tracepoints' i.e. register a certain code location for having a custom string being printed. Can be better and more convenient than print statetemnts especially because it doesn't change the program. Also great when you have bugs which disappear after adding print statements.

victorthehuman 2021-08-17 11:15:44 +0000 UTC [ - ]

The problem with those types of breakpoints is that they slow down the app considerably. Put one of those in a tight loop and the timing related bug you're after could be gone.

Veserv 2021-08-17 19:31:50 +0000 UTC [ - ]

Only if they are implemented inefficiently or your application is constrained in a way that precludes efficient implementation.

As long as you can inject code and steal some memory you can just directly patch in the code snippet and patch in a branch instead of a breakpoint instruction. This is functionally equivalent to a adding a print statement, just at runtime instead of compile time, so should not be significantly slower.

pixel_tracing 2021-08-17 15:31:20 +0000 UTC [ - ]

I thought this would be for analyzing assembly with LLDB in Xcode :( left disappointed. Most of these are well known to advanced iOS engineers.

ElFitz 2021-08-17 11:29:08 +0000 UTC [ - ]

My biggest issue with Xcode breakpoints, especially with the conditional "Automatically continue after evaluating actions" ones, is how much they can slow down the app.