About the Debug Navigator

The debug navigator displays the call stacks of your paused app. With this navigator you can debug Swift or C-based code.

The debug navigator opens automatically whenever you pause your application by choosing Debug > Pause or when your code encounters a breakpoint.

This is how the debug navigator appears by default when an app has paused at a breakpoint.


Selecting an item in the debug navigator causes information about the item to be displayed in the source editor and in the debug area.


Debugging C-based Code

The debug navigator contains one or more processes, each containing debug gauges, the process view, which can showthread/memory locations in a list or the view hierarchy, and a filter bar.

With the debug gauges, you can see how your app is consuming cpu power, memory, and other resources as it runs. Click the Hide/Show button to toggle the display of the debug gauges.

With the process view selector menu, you choose what the navigator displays in the process view:

  • By Thread: Displays threads organized as a flat list.

  • By Queue: Groups threads under the dispatch queue that created them.

  • Show View Hierarchy: Pauses the running app and displays the view hierarchy in the process view while rendering the UI in the source editor pane.

When debugging code, the navigator groups the stack frames by threads or queues and lists the memory locations you’re interested in. Use the debug navigator to navigate the stack frames of your app’s threads and to manage viewed memory locations for the current debugging session.

To remove a memory location from the list in the process view, select it and press Delete.

With the process view set to display your process organized by thread or by queue, threads indicate their running state with a status icon:

  • No icon means the thread is running normally.

  • A yellow status icon means that the thread is blocked and waiting on a lock or condition.

  • A red status icon means that you suspended the thread. A suspended thread does not execute code when you resume your application.

  • A gray icon means that thread or block is part of the recorded backtrace and is not currently executing

With the filter bar you specify the threads and stack frames you want to see. The thread text filter allows you to show only threads or queues with names that match the filter text. The left button suppresses the display of stack frames without debug symbols. The middle button displays only crashed threads and threads with debug symbols. The right button suppresses the display of non-running blocks when the debug navigator is displaying queues.