2018-03-05 18:19:19 +00:00
|
|
|
## Debugging with XCode
|
|
|
|
|
|
|
|
### Generate xcode project for debugging sources (cannot build code from xcode)
|
2018-09-09 01:15:32 +00:00
|
|
|
Run `gn gen` with the --ide=xcode argument.
|
2018-03-05 18:19:19 +00:00
|
|
|
```sh
|
2018-09-09 01:15:32 +00:00
|
|
|
$ gn gen out/Debug --ide=xcode
|
2018-03-05 18:19:19 +00:00
|
|
|
```
|
2018-09-09 01:15:32 +00:00
|
|
|
This will generate the electron.ninja.xcworkspace. You will have to open this workspace
|
2018-03-05 18:19:19 +00:00
|
|
|
to set breakpoints and inspect.
|
|
|
|
|
2018-09-09 01:15:32 +00:00
|
|
|
See `gn help gen` for more information on generating IDE projects with GN.
|
|
|
|
|
2018-03-05 18:19:19 +00:00
|
|
|
### Debugging and breakpoints
|
|
|
|
|
2018-07-20 17:58:19 +00:00
|
|
|
Launch Electron app after build.
|
|
|
|
You can now open the xcode workspace created above and attach to the Electron process
|
2018-03-05 18:19:19 +00:00
|
|
|
through the Debug > Attach To Process > Electron debug menu. [Note: If you want to debug
|
|
|
|
the renderer process, you need to attach to the Electron Helper as well.]
|
|
|
|
|
|
|
|
You can now set breakpoints in any of the indexed files. However, you will not be able
|
2018-07-20 17:58:19 +00:00
|
|
|
to set breakpoints directly in the Chromium source.
|
|
|
|
To set break points in the Chromium source, you can choose Debug > Breakpoints > Create
|
2018-03-05 18:19:19 +00:00
|
|
|
Symbolic Breakpoint and set any function name as the symbol. This will set the breakpoint
|
|
|
|
for all functions with that name, from all the classes if there are more than one.
|
|
|
|
You can also do this step of setting break points prior to attaching the debugger,
|
|
|
|
however, actual breakpoints for symbolic breakpoint functions may not show up until the
|
2018-07-20 17:58:19 +00:00
|
|
|
debugger is attached to the app.
|