Debugging with Fire and Water

Fire and Water provide sophisticated debugging support for all supported target platforms and all Elements languages.

Depending on the target platform, the debugged applications will run locally, on a remote computer (connected to via CrossBox 2 over SSH), or a physical device (Android, iOS Device or Apple TV) connected locally or to a remote Mac.

Please refer to the Working w/ Devices topic for more details on what options are supported, and how to select the appropriate device.

Launching

After selecting the target machine or device, the remainder of the debugging process is the same, for all platforms. You have several options to launch or deploy your application, available via the "Project" menu and corresponding keyboard shortcuts

  • "Run" – the default option, selecting this will build your application, deploy it (where necessary) to the target device, and then run it in the debugger. Most of the remainder of this topic will be focused on this option. (⌘R / Ctrl+R)
  • "Run w/o Debugging" – selecting this will run your project, but without the debugger attached. You application will run as it would in production mode, without the overhead of the debugger, but also without its benefits. (⌘⇧R / Ctrl+Shift+R)
  • "Deploy w/o Running" – where applicable (i.e. only for applications running on external devices, this option will deploy your app, but not launch it. This is helpful to just get your app installed, if you want to launch it manually. (⌘⇧D / Ctrl+Shift+D)
  • "Test" – builds and runs a test application in the debugger, but in a special Testing mode for EUnit unit testing. (⌘T / Ctrl+T)
  • "Test All Projects" – builds and runs all test applications in the special Testing mode. (⌘⇧T / Ctrl+Shift+T).

There are three optional phases that might need to happen before debugging can start: Building, Uploading (when using a remote computer) and/or Deploying (when using a device). The IDE is smart about not repeating these preparational phases unnecessarily, for example skipping a rebuild or re-deployment if your application code has not changed between runs.

You will see the status of each of these phases in the top right corner of the Jump bar, and also by its color-coding. The Jump Bar (and the application icon) will turn yellow when the debugs session starts, and the status will read "Debugging":

[SCREENSHOT NEEDED]

Breakpoints

Exceptions

Stepping

The "Threads and Callstacks" Pane

In the Code Editor

The Debug Console

The Debug Inspector

The Device Log

The Disassembly View

Browsing for Source Code