Chapter 17. Debugging

Selfiegram is complete, and we’re at the point where we want to start shipping it off for people to start testing—right? But what if there are bugs in the code? How would we go about finding and squashing them? What about the performance of Selfiegram? Is the app snappy and responsive? Are we leaking memory or taking too long to load resources? In this chapter we are going to be looking at how we can use the debugger in Xcode to find bugs, and the Instruments app to monitor and performance-test our app.

The Debugger

No one is perfect, especially not when it comes to writing code. There are so many tiny pieces all in play that small mistakes can easily get lost in the codebase. Eventually these little bugs will cause issues, and you’ll have to fix them—but they can be buried many layers deep in your code, so how do you find them?

This is where the debugger comes in. The debugger lets you move through your code line by line, action by action, inspecting and querying the running program as you go.


Depending on your previous experience with debuggers, this section might be a bit dull. The Xcode debugger (LLDB) is very similar in design and function to all other debuggers.

The basic operation of the debugger is the same regardless of what you are debugging. You run your app through the debugger, and it will run the program like normal but will halt execution at certain points to let you inspect the code and give you control over how to continue ...

Get Learning Swift, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.