crashReporter
This content is not available in your language yet.
Electron crashReporter에 대응하는 API. 런타임 API는 extra parameter와
업로드 플래그 상태를 제공한다. 크래시 리포터가 첫 프로세스부터 활성화되려면
suji.json의 app.crashReporter 설정이 필요하다 — 이 설정이 앱 시작 전에
crash_reporter.cfg를 생성한다.
suji.json
섹션 제목: “suji.json”{ "app": { "name": "My App", "version": "1.0.0", "crashReporter": { "submitURL": "https://crash.example/submit", "uploadToServer": true, "extra": { "channel": "stable" } } }}CEF 제약상 crash_reporter.cfg는 initialize 전에 존재해야 한다. macOS .app 번들은
Contents/Resources/crash_reporter.cfg, Linux/Windows와 dev raw binary는 실행 파일 옆에 생성된다.
Frontend
섹션 제목: “Frontend”import { crashReporter } from "@suji/api";
await crashReporter.start({ uploadToServer: false, extra: { suite: "e2e" },});
await crashReporter.addExtraParameter("mode", "test");const params = await crashReporter.getParameters();await crashReporter.removeExtraParameter("mode");API
섹션 제목: “API”| API | 설명 |
|---|---|
start(options) | 런타임 상태와 extra 값을 등록. uploadToServer:true이면 submitURL 필요 |
getParameters() | 현재 등록된 extra parameter 객체 |
addExtraParameter(key, value) | crash key 추가/갱신. key는 ASCII [A-Za-z0-9_-], 39바이트 이하. value는 1024바이트 이하 |
removeExtraParameter(key) | crash key 제거 |
getUploadToServer() / setUploadToServer(bool) | 업로드 플래그 조회/변경 |
getUploadedReports() | 로컬 Crashpad DB의 completed/*.dmp report 목록 |
getLastCrashReport() | 로컬 Crashpad DB의 최신 completed/pending report 또는 null |
참고 사항
섹션 제목: “참고 사항”- Crashpad DB 조회는 로컬 dump 파일을 읽는다.
macOS/Linux는 앱 캐시 경로 아래
Crashpad/, Windows는%LOCALAPPDATA%/<AppName>/User Data/Crashpad를 사용한다. - 실제 크래시 유발과 업로드 서버 round-trip은 자동으로 검증되지 않는다.
submitURL_required, 잘못된 crash key, 초과 크기 value 같은 런타임 validation은 동작한다. extra값은 crash reporter가 활성화된 상태에서 crash key로도 전달된다.- crash key 선언은 시작 전 cfg의
[CrashKeys]에 있어야 dump에 안정적으로 포함된다.