Updated docs for crash reporter to support child processes
This commit is contained in:
parent
ade16a7823
commit
dc5129f32e
1 changed files with 24 additions and 6 deletions
|
@ -51,16 +51,34 @@ You are required to call this method before using any other `crashReporter` APIs
|
|||
and in each process (main/renderer) from which you want to collect crash reports.
|
||||
You can pass different options to `crashReporter.start` when calling from different processes.
|
||||
|
||||
**Note:** On Windows and Linux, Electron uses `breakpad` for crash collection and reporting.
|
||||
Crashes can be collected from the main and renderer process, but not from the child processes
|
||||
created via the `child_process` module.
|
||||
**Note** Child processes created via the `child_process` module will not have access to the electron modules.
|
||||
Therefore, to collect crash reports from them, use `process.crashReporter.start` instead. Pass the same options as above
|
||||
along with an additional one called `crashesDirectory` that should point to a directory to store the crash
|
||||
reports temporarily.
|
||||
|
||||
**Note:** To collect crash reports from child process in Windows, you need to add this extra code as well.
|
||||
This will start the process that will monitor and send the crash reports. Replace `submitURL`, `productName` and `tmpPath`
|
||||
with appropriate values.
|
||||
```
|
||||
const args = [
|
||||
'--reporter-url=' + submitURL,
|
||||
'--application-name=' + productName,
|
||||
'--crashes-directory=' + tmpPath
|
||||
]
|
||||
const env = {
|
||||
ELECTRON_INTERNAL_CRASH_SERVICE: 1
|
||||
}
|
||||
spawn(process.execPath, args, {
|
||||
env: env,
|
||||
detached: true
|
||||
})
|
||||
```
|
||||
|
||||
**Note:** On macOS, Electron uses a new `crashpad` client for crash collection and reporting.
|
||||
Crashes can be collected from the main, renderer and any of the child processes created via the `child_process` module.
|
||||
If you want to enable crash reporting, initializing `crashpad` from the main process using `crashReporter.start` is required
|
||||
regardless of which process you want to collect crashes from. Once initialized this way, the crashpad handler collects
|
||||
crashes from all processes. You still have to call `crashReporter.start` from the renderer process, otherwise crashes from
|
||||
renderer processes will get reported without `companyName`, `productName` or any of the `extra` information.
|
||||
crashes from all processes. You still have to call `crashReporter.start` from the renderer or child process, otherwise crashes from
|
||||
them will get reported without `companyName`, `productName` or any of the `extra` information.
|
||||
|
||||
### `crashReporter.getLastCrashReport()`
|
||||
|
||||
|
|
Loading…
Reference in a new issue