Electron

Debugging

Bisecting

vs

Debugging

Bisecting

  • 🎯 Goal: Find a Pull Request in Electron that broke things
     
  • The issue is new
  • You have a solid understanding of what breaks (isolated reproduction is easy)
  • You're reasonably certain that the issue isn't an upstream bug in Node.js or Chromium

Debugging

  • 🎯 Goal: Understanding what is actually broken
     
  • You have the ability to reproduce the issue yourself, even if only as part of a giant app
  • You want data: Stack traces, logs, breakpoints

Main Process JS
Renderer Process JS
Native Code

Main Process

Is "just" JavaScript, so you can catch errors with your favorite Web or Node.js method.

 

You need to decide what you want to do with main process errors. There is no right answer.

Renderer Process

Same: "Just" JavaScript.

 

Less bad than main process errors - these will "just" go to the console. Handle them as you please.

Native Code

Will crash your app. Let's look at one of those crashes:

 

  1. Setup crashReporter
  2. Have crash reported
  3. Look at source
  4. Isolate reason, create issue
  5. Fix the issue (#1, #2)

Andy Time

Debugging the Main Process

electron --inspect=5858 your/app 

electron --inspect-brk=5858 your/app

 

💁‍♂️ You can also do this in Visual Studio Code

Electron Debugging

By Felix Rieseberg