diff --git a/general/src/protocol/thread.rs b/general/src/protocol/thread.rs index f8577d0fd1..d876317bbc 100644 --- a/general/src/protocol/thread.rs +++ b/general/src/protocol/thread.rs @@ -87,12 +87,15 @@ pub struct Thread { #[metastructure(skip_serialization = "empty")] pub raw_stacktrace: Annotated, - /// Indicates that this thread requested the event (usually by crashing). + /// Indicates that this thread crashed (likely also crashing the application). pub crashed: Annotated, /// Indicates that the thread was not suspended when the event was created. pub current: Annotated, + /// Indicates that this thread errored, which caused this event. + pub errored: Annotated, + /// Additional arbitrary fields for forwards compatibility. #[metastructure(additional_properties)] pub other: Object, @@ -130,6 +133,7 @@ fn test_thread_roundtrip() { "name": "myname", "crashed": true, "current": true, + "errored": true, "other": "value" }"#; let thread = Annotated::new(Thread { @@ -139,6 +143,7 @@ fn test_thread_roundtrip() { raw_stacktrace: Annotated::empty(), crashed: Annotated::new(true), current: Annotated::new(true), + errored: Annotated::new(true), other: { let mut map = Map::new(); map.insert( diff --git a/general/tests/fixtures/payloads/android.json b/general/tests/fixtures/payloads/android.json new file mode 100644 index 0000000000..178d5af5bc --- /dev/null +++ b/general/tests/fixtures/payloads/android.json @@ -0,0 +1,458 @@ +{ + "event_id": "ae3a2cc6e08741c5b09946c65c022469", + "release": "io.sentry.sample-1.0", + "dist": "1", + "platform": "java", + "contexts": { + "device": { + "screen_resolution": "1369x720", + "orientation": "portrait", + "family": "Redmi", + "battery_level": 97, + "screen_dpi": 320, + "memory_size": 2955337728, + "timezone": "Europe/Vienna", + "external_storage_size": 23785328640, + "external_free_storage": 20191956992, + "screen_width_pixels": 720, + "low_memory": false, + "simulator": false, + "screen_height_pixels": 1369, + "free_memory": 1435279360, + "online": true, + "screen_density": 2, + "type": "device", + "charging": true, + "model_id": "PKQ1.181021.001", + "brand": "xiaomi", + "storage_size": 23785328640, + "boot_time": "2019-11-02T02:10:23Z", + "arch": "arm64-v8a", + "manufacturer": "Xiaomi", + "name": "Redmi 7", + "free_storage": 20191956992, + "model": "Redmi 7", + "archs": [ + "arm64-v8a", + "armeabi-v7a", + "armeabi" + ] + }, + "app": { + "app_identifier": "io.sentry.sample", + "app_name": "Sentry sample", + "app_start_time": "2019-11-08T08:40:05Z", + "app_version": "1.0", + "type": "app", + "app_build": "1" + }, + "os": { + "rooted": false, + "kernel_version": "4.9.112-perf+", + "version": "9", + "build": "PKQ1.181021.001", + "type": "os", + "name": "Android" + } + }, + "culprit": "com.android.internal.os.ZygoteInit in main", + "exception": { + "values": [ + { + "stacktrace": { + "frames": [ + { + "function": "lambda$onCreate$2", + "abs_path": "MainActivity.java", + "module": "io.sentry.sample.MainActivity", + "in_app": false, + "lineno": 36, + "filename": "MainActivity.java" + }, + { + "function": "onClick", + "lineno": 0, + "module": "io.sentry.sample.-$$Lambda$MainActivity$tVGPRGxxb8SivUa5SKhzp6BuXOI", + "in_app": false + }, + { + "function": "performClick", + "abs_path": "View.java", + "module": "android.view.View", + "in_app": false, + "lineno": 6608, + "filename": "View.java" + }, + { + "function": "performClickInternal", + "abs_path": "View.java", + "module": "android.view.View", + "in_app": false, + "lineno": 6585, + "filename": "View.java" + }, + { + "function": "access$3100", + "abs_path": "View.java", + "module": "android.view.View", + "in_app": false, + "lineno": 785, + "filename": "View.java" + }, + { + "function": "run", + "abs_path": "View.java", + "module": "android.view.View$PerformClick", + "in_app": false, + "lineno": 25919, + "filename": "View.java" + }, + { + "function": "handleCallback", + "abs_path": "Handler.java", + "module": "android.os.Handler", + "in_app": false, + "lineno": 873, + "filename": "Handler.java" + }, + { + "function": "dispatchMessage", + "abs_path": "Handler.java", + "module": "android.os.Handler", + "in_app": false, + "lineno": 99, + "filename": "Handler.java" + }, + { + "function": "loop", + "abs_path": "Looper.java", + "module": "android.os.Looper", + "in_app": false, + "lineno": 201, + "filename": "Looper.java" + }, + { + "function": "main", + "abs_path": "ActivityThread.java", + "module": "android.app.ActivityThread", + "in_app": false, + "lineno": 6810, + "filename": "ActivityThread.java" + }, + { + "function": "invoke", + "abs_path": "Method.java", + "in_app": false, + "module": "java.lang.reflect.Method", + "filename": "Method.java" + }, + { + "function": "run", + "abs_path": "RuntimeInit.java", + "module": "com.android.internal.os.RuntimeInit$MethodAndArgsCaller", + "in_app": false, + "lineno": 547, + "filename": "RuntimeInit.java" + }, + { + "function": "main", + "abs_path": "ZygoteInit.java", + "module": "com.android.internal.os.ZygoteInit", + "in_app": false, + "lineno": 873, + "filename": "ZygoteInit.java" + } + ] + }, + "type": "Exception", + "module": "java.lang", + "value": "Some exception." + } + ] + }, + "level": "error", + "threads": { + "values": [ + { + "stacktrace": { + "frames": [ + { + "function": "observe", + "abs_path": "FileObserver.java", + "in_app": false, + "module": "android.os.FileObserver$ObserverThread", + "filename": "FileObserver.java" + }, + { + "function": "run", + "abs_path": "FileObserver.java", + "module": "android.os.FileObserver$ObserverThread", + "in_app": false, + "lineno": 86, + "filename": "FileObserver.java" + } + ] + }, + "id": 5273, + "name": "FileObserver" + }, + { + "errored": true, + "stacktrace": { + "frames": [ + { + "function": "getThreadStackTrace", + "abs_path": "VMStack.java", + "in_app": true, + "module": "dalvik.system.VMStack", + "filename": "VMStack.java" + }, + { + "function": "getStackTrace", + "abs_path": "Thread.java", + "module": "java.lang.Thread", + "in_app": false, + "lineno": 1538, + "filename": "Thread.java" + }, + { + "function": "getAllStackTraces", + "abs_path": "Thread.java", + "module": "java.lang.Thread", + "in_app": false, + "lineno": 1588, + "filename": "Thread.java" + }, + { + "function": "getCurrentThreads", + "abs_path": "SentryThreadFactory.java", + "module": "io.sentry.core.SentryThreadFactory", + "in_app": false, + "lineno": 32, + "filename": "SentryThreadFactory.java" + }, + { + "function": "process", + "abs_path": "MainEventProcessor.java", + "module": "io.sentry.core.MainEventProcessor", + "in_app": false, + "lineno": 64, + "filename": "MainEventProcessor.java" + }, + { + "function": "captureEvent", + "abs_path": "SentryClient.java", + "module": "io.sentry.core.SentryClient", + "in_app": false, + "lineno": 105, + "filename": "SentryClient.java" + }, + { + "function": "$default$captureException", + "abs_path": "ISentryClient.java", + "module": "io.sentry.core.ISentryClient$-CC", + "in_app": false, + "lineno": 48, + "filename": "ISentryClient.java" + }, + { + "function": "captureException", + "lineno": 0, + "module": "io.sentry.core.SentryClient", + "in_app": false + }, + { + "function": "$default$captureException", + "abs_path": "ISentryClient.java", + "module": "io.sentry.core.ISentryClient$-CC", + "in_app": false, + "lineno": 56, + "filename": "ISentryClient.java" + }, + { + "function": "captureException", + "lineno": 0, + "module": "io.sentry.core.SentryClient", + "in_app": false + }, + { + "function": "captureException", + "abs_path": "Hub.java", + "module": "io.sentry.core.Hub", + "in_app": false, + "lineno": 145, + "filename": "Hub.java" + }, + { + "function": "$default$captureException", + "abs_path": "IHub.java", + "module": "io.sentry.core.IHub$-CC", + "in_app": false, + "lineno": 21, + "filename": "IHub.java" + }, + { + "function": "captureException", + "lineno": 0, + "module": "io.sentry.core.Hub", + "in_app": false + }, + { + "function": "captureException", + "abs_path": "Sentry.java", + "module": "io.sentry.core.Sentry", + "in_app": false, + "lineno": 87, + "filename": "Sentry.java" + }, + { + "function": "lambda$onCreate$2", + "abs_path": "MainActivity.java", + "module": "io.sentry.sample.MainActivity", + "in_app": false, + "lineno": 36, + "filename": "MainActivity.java" + }, + { + "function": "onClick", + "lineno": 0, + "module": "io.sentry.sample.-$$Lambda$MainActivity$tVGPRGxxb8SivUa5SKhzp6BuXOI", + "in_app": false + }, + { + "function": "performClick", + "abs_path": "View.java", + "module": "android.view.View", + "in_app": false, + "lineno": 6608, + "filename": "View.java" + }, + { + "function": "performClickInternal", + "abs_path": "View.java", + "module": "android.view.View", + "in_app": false, + "lineno": 6585, + "filename": "View.java" + }, + { + "function": "access$3100", + "abs_path": "View.java", + "module": "android.view.View", + "in_app": false, + "lineno": 785, + "filename": "View.java" + }, + { + "function": "run", + "abs_path": "View.java", + "module": "android.view.View$PerformClick", + "in_app": false, + "lineno": 25919, + "filename": "View.java" + }, + { + "function": "handleCallback", + "abs_path": "Handler.java", + "module": "android.os.Handler", + "in_app": false, + "lineno": 873, + "filename": "Handler.java" + }, + { + "function": "dispatchMessage", + "abs_path": "Handler.java", + "module": "android.os.Handler", + "in_app": false, + "lineno": 99, + "filename": "Handler.java" + }, + { + "function": "loop", + "abs_path": "Looper.java", + "module": "android.os.Looper", + "in_app": false, + "lineno": 201, + "filename": "Looper.java" + }, + { + "function": "main", + "abs_path": "ActivityThread.java", + "module": "android.app.ActivityThread", + "in_app": false, + "lineno": 6810, + "filename": "ActivityThread.java" + }, + { + "function": "invoke", + "abs_path": "Method.java", + "in_app": false, + "module": "java.lang.reflect.Method", + "filename": "Method.java" + }, + { + "function": "run", + "abs_path": "RuntimeInit.java", + "module": "com.android.internal.os.RuntimeInit$MethodAndArgsCaller", + "in_app": false, + "lineno": 547, + "filename": "RuntimeInit.java" + }, + { + "function": "main", + "abs_path": "ZygoteInit.java", + "module": "com.android.internal.os.ZygoteInit", + "in_app": false, + "lineno": 873, + "filename": "ZygoteInit.java" + } + ] + }, + "id": 2, + "name": "main" + }, + { + "stacktrace": { + "frames": [ + { + "function": "sleep", + "abs_path": "Thread.java", + "in_app": false, + "module": "java.lang.Thread", + "filename": "Thread.java" + }, + { + "function": "sleep", + "abs_path": "Thread.java", + "module": "java.lang.Thread", + "in_app": false, + "lineno": 373, + "filename": "Thread.java" + }, + { + "function": "sleep", + "abs_path": "Thread.java", + "module": "java.lang.Thread", + "in_app": false, + "lineno": 314, + "filename": "Thread.java" + }, + { + "function": "run", + "abs_path": "ANRWatchDog.java", + "module": "io.sentry.android.core.ANRWatchDog", + "in_app": false, + "lineno": 77, + "filename": "ANRWatchDog.java" + } + ] + }, + "id": 5274, + "name": "|ANR-WatchDog|" + } + ] + }, + "user": { + "id": "1761a9fcb6836d4c" + } +} diff --git a/general/tests/snapshots/test_fixtures__android-2.snap b/general/tests/snapshots/test_fixtures__android-2.snap new file mode 100644 index 0000000000..8a772aa0e8 --- /dev/null +++ b/general/tests/snapshots/test_fixtures__android-2.snap @@ -0,0 +1,346 @@ +--- +source: general/tests/test_fixtures.rs +expression: SerializableAnnotated(&event) +--- +event_id: ae3a2cc6e08741c5b09946c65c022469 +level: error +type: error +culprit: com.android.internal.os.ZygoteInit in main +logger: "" +platform: java +timestamp: "[timestamp]" +received: "[received]" +release: io.sentry.sample-1.0 +dist: "1" +user: + id: 1761a9fcb6836d4c +contexts: + app: + app_start_time: "2019-11-08T08:40:05Z" + app_identifier: io.sentry.sample + app_name: Sentry sample + app_version: "1.0" + app_build: "1" + type: app + device: + name: Redmi 7 + family: Redmi + model: Redmi 7 + model_id: PKQ1.181021.001 + arch: arm64-v8a + battery_level: 97.0 + orientation: portrait + manufacturer: Xiaomi + brand: xiaomi + screen_resolution: 1369x720 + screen_density: 2.0 + screen_dpi: 320 + online: true + charging: true + low_memory: false + simulator: false + memory_size: 2955337728 + free_memory: 1435279360 + storage_size: 23785328640 + free_storage: 20191956992 + external_storage_size: 23785328640 + external_free_storage: 20191956992 + boot_time: "2019-11-02T02:10:23Z" + timezone: Europe/Vienna + archs: + - arm64-v8a + - armeabi-v7a + - armeabi + screen_height_pixels: 1369 + screen_width_pixels: 720 + type: device + os: + name: Android + version: "9" + build: PKQ1.181021.001 + kernel_version: 4.9.112-perf+ + rooted: false + type: os +exception: + values: + - type: Exception + value: Some exception. + module: java.lang + stacktrace: + frames: + - function: lambda$onCreate$2 + module: io.sentry.sample.MainActivity + filename: MainActivity.java + abs_path: MainActivity.java + lineno: 36 + in_app: false + - function: onClick + module: io.sentry.sample.-$$Lambda$MainActivity$tVGPRGxxb8SivUa5SKhzp6BuXOI + lineno: 0 + in_app: false + - function: performClick + module: android.view.View + filename: View.java + abs_path: View.java + lineno: 6608 + in_app: false + - function: performClickInternal + module: android.view.View + filename: View.java + abs_path: View.java + lineno: 6585 + in_app: false + - function: access$3100 + module: android.view.View + filename: View.java + abs_path: View.java + lineno: 785 + in_app: false + - function: run + module: android.view.View$PerformClick + filename: View.java + abs_path: View.java + lineno: 25919 + in_app: false + - function: handleCallback + module: android.os.Handler + filename: Handler.java + abs_path: Handler.java + lineno: 873 + in_app: false + - function: dispatchMessage + module: android.os.Handler + filename: Handler.java + abs_path: Handler.java + lineno: 99 + in_app: false + - function: loop + module: android.os.Looper + filename: Looper.java + abs_path: Looper.java + lineno: 201 + in_app: false + - function: main + module: android.app.ActivityThread + filename: ActivityThread.java + abs_path: ActivityThread.java + lineno: 6810 + in_app: false + - function: invoke + module: java.lang.reflect.Method + filename: Method.java + abs_path: Method.java + in_app: false + - function: run + module: com.android.internal.os.RuntimeInit$MethodAndArgsCaller + filename: RuntimeInit.java + abs_path: RuntimeInit.java + lineno: 547 + in_app: false + - function: main + module: com.android.internal.os.ZygoteInit + filename: ZygoteInit.java + abs_path: ZygoteInit.java + lineno: 873 + in_app: false +threads: + values: + - id: 5273 + name: FileObserver + stacktrace: + frames: + - function: observe + module: android.os.FileObserver$ObserverThread + filename: FileObserver.java + abs_path: FileObserver.java + in_app: false + - function: run + module: android.os.FileObserver$ObserverThread + filename: FileObserver.java + abs_path: FileObserver.java + lineno: 86 + in_app: false + - id: 2 + name: main + stacktrace: + frames: + - function: getThreadStackTrace + module: dalvik.system.VMStack + filename: VMStack.java + abs_path: VMStack.java + in_app: true + - function: getStackTrace + module: java.lang.Thread + filename: Thread.java + abs_path: Thread.java + lineno: 1538 + in_app: false + - function: getAllStackTraces + module: java.lang.Thread + filename: Thread.java + abs_path: Thread.java + lineno: 1588 + in_app: false + - function: getCurrentThreads + module: io.sentry.core.SentryThreadFactory + filename: SentryThreadFactory.java + abs_path: SentryThreadFactory.java + lineno: 32 + in_app: false + - function: process + module: io.sentry.core.MainEventProcessor + filename: MainEventProcessor.java + abs_path: MainEventProcessor.java + lineno: 64 + in_app: false + - function: captureEvent + module: io.sentry.core.SentryClient + filename: SentryClient.java + abs_path: SentryClient.java + lineno: 105 + in_app: false + - function: $default$captureException + module: io.sentry.core.ISentryClient$-CC + filename: ISentryClient.java + abs_path: ISentryClient.java + lineno: 48 + in_app: false + - function: captureException + module: io.sentry.core.SentryClient + lineno: 0 + in_app: false + - function: $default$captureException + module: io.sentry.core.ISentryClient$-CC + filename: ISentryClient.java + abs_path: ISentryClient.java + lineno: 56 + in_app: false + - function: captureException + module: io.sentry.core.SentryClient + lineno: 0 + in_app: false + - function: captureException + module: io.sentry.core.Hub + filename: Hub.java + abs_path: Hub.java + lineno: 145 + in_app: false + - function: $default$captureException + module: io.sentry.core.IHub$-CC + filename: IHub.java + abs_path: IHub.java + lineno: 21 + in_app: false + - function: captureException + module: io.sentry.core.Hub + lineno: 0 + in_app: false + - function: captureException + module: io.sentry.core.Sentry + filename: Sentry.java + abs_path: Sentry.java + lineno: 87 + in_app: false + - function: lambda$onCreate$2 + module: io.sentry.sample.MainActivity + filename: MainActivity.java + abs_path: MainActivity.java + lineno: 36 + in_app: false + - function: onClick + module: io.sentry.sample.-$$Lambda$MainActivity$tVGPRGxxb8SivUa5SKhzp6BuXOI + lineno: 0 + in_app: false + - function: performClick + module: android.view.View + filename: View.java + abs_path: View.java + lineno: 6608 + in_app: false + - function: performClickInternal + module: android.view.View + filename: View.java + abs_path: View.java + lineno: 6585 + in_app: false + - function: access$3100 + module: android.view.View + filename: View.java + abs_path: View.java + lineno: 785 + in_app: false + - function: run + module: android.view.View$PerformClick + filename: View.java + abs_path: View.java + lineno: 25919 + in_app: false + - function: handleCallback + module: android.os.Handler + filename: Handler.java + abs_path: Handler.java + lineno: 873 + in_app: false + - function: dispatchMessage + module: android.os.Handler + filename: Handler.java + abs_path: Handler.java + lineno: 99 + in_app: false + - function: loop + module: android.os.Looper + filename: Looper.java + abs_path: Looper.java + lineno: 201 + in_app: false + - function: main + module: android.app.ActivityThread + filename: ActivityThread.java + abs_path: ActivityThread.java + lineno: 6810 + in_app: false + - function: invoke + module: java.lang.reflect.Method + filename: Method.java + abs_path: Method.java + in_app: false + - function: run + module: com.android.internal.os.RuntimeInit$MethodAndArgsCaller + filename: RuntimeInit.java + abs_path: RuntimeInit.java + lineno: 547 + in_app: false + - function: main + module: com.android.internal.os.ZygoteInit + filename: ZygoteInit.java + abs_path: ZygoteInit.java + lineno: 873 + in_app: false + errored: true + - id: 5274 + name: "|ANR-WatchDog|" + stacktrace: + frames: + - function: sleep + module: java.lang.Thread + filename: Thread.java + abs_path: Thread.java + in_app: false + - function: sleep + module: java.lang.Thread + filename: Thread.java + abs_path: Thread.java + lineno: 373 + in_app: false + - function: sleep + module: java.lang.Thread + filename: Thread.java + abs_path: Thread.java + lineno: 314 + in_app: false + - function: run + module: io.sentry.android.core.ANRWatchDog + filename: ANRWatchDog.java + abs_path: ANRWatchDog.java + lineno: 77 + in_app: false diff --git a/general/tests/snapshots/test_fixtures__android.snap b/general/tests/snapshots/test_fixtures__android.snap new file mode 100644 index 0000000000..8590a724de --- /dev/null +++ b/general/tests/snapshots/test_fixtures__android.snap @@ -0,0 +1,342 @@ +--- +source: general/tests/test_fixtures.rs +expression: SerializableAnnotated(&event) +--- +event_id: ae3a2cc6e08741c5b09946c65c022469 +level: error +culprit: com.android.internal.os.ZygoteInit in main +platform: java +release: io.sentry.sample-1.0 +dist: "1" +user: + id: 1761a9fcb6836d4c +contexts: + app: + app_start_time: "2019-11-08T08:40:05Z" + app_identifier: io.sentry.sample + app_name: Sentry sample + app_version: "1.0" + app_build: "1" + type: app + device: + name: Redmi 7 + family: Redmi + model: Redmi 7 + model_id: PKQ1.181021.001 + arch: arm64-v8a + battery_level: 97.0 + orientation: portrait + manufacturer: Xiaomi + brand: xiaomi + screen_resolution: 1369x720 + screen_density: 2.0 + screen_dpi: 320 + online: true + charging: true + low_memory: false + simulator: false + memory_size: 2955337728 + free_memory: 1435279360 + storage_size: 23785328640 + free_storage: 20191956992 + external_storage_size: 23785328640 + external_free_storage: 20191956992 + boot_time: "2019-11-02T02:10:23Z" + timezone: Europe/Vienna + archs: + - arm64-v8a + - armeabi-v7a + - armeabi + screen_height_pixels: 1369 + screen_width_pixels: 720 + type: device + os: + name: Android + version: "9" + build: PKQ1.181021.001 + kernel_version: 4.9.112-perf+ + rooted: false + type: os +exception: + values: + - type: Exception + value: Some exception. + module: java.lang + stacktrace: + frames: + - function: lambda$onCreate$2 + module: io.sentry.sample.MainActivity + filename: MainActivity.java + abs_path: MainActivity.java + lineno: 36 + in_app: false + - function: onClick + module: io.sentry.sample.-$$Lambda$MainActivity$tVGPRGxxb8SivUa5SKhzp6BuXOI + lineno: 0 + in_app: false + - function: performClick + module: android.view.View + filename: View.java + abs_path: View.java + lineno: 6608 + in_app: false + - function: performClickInternal + module: android.view.View + filename: View.java + abs_path: View.java + lineno: 6585 + in_app: false + - function: access$3100 + module: android.view.View + filename: View.java + abs_path: View.java + lineno: 785 + in_app: false + - function: run + module: android.view.View$PerformClick + filename: View.java + abs_path: View.java + lineno: 25919 + in_app: false + - function: handleCallback + module: android.os.Handler + filename: Handler.java + abs_path: Handler.java + lineno: 873 + in_app: false + - function: dispatchMessage + module: android.os.Handler + filename: Handler.java + abs_path: Handler.java + lineno: 99 + in_app: false + - function: loop + module: android.os.Looper + filename: Looper.java + abs_path: Looper.java + lineno: 201 + in_app: false + - function: main + module: android.app.ActivityThread + filename: ActivityThread.java + abs_path: ActivityThread.java + lineno: 6810 + in_app: false + - function: invoke + module: java.lang.reflect.Method + filename: Method.java + abs_path: Method.java + in_app: false + - function: run + module: com.android.internal.os.RuntimeInit$MethodAndArgsCaller + filename: RuntimeInit.java + abs_path: RuntimeInit.java + lineno: 547 + in_app: false + - function: main + module: com.android.internal.os.ZygoteInit + filename: ZygoteInit.java + abs_path: ZygoteInit.java + lineno: 873 + in_app: false +threads: + values: + - id: 5273 + name: FileObserver + stacktrace: + frames: + - function: observe + module: android.os.FileObserver$ObserverThread + filename: FileObserver.java + abs_path: FileObserver.java + in_app: false + - function: run + module: android.os.FileObserver$ObserverThread + filename: FileObserver.java + abs_path: FileObserver.java + lineno: 86 + in_app: false + - id: 2 + name: main + stacktrace: + frames: + - function: getThreadStackTrace + module: dalvik.system.VMStack + filename: VMStack.java + abs_path: VMStack.java + in_app: true + - function: getStackTrace + module: java.lang.Thread + filename: Thread.java + abs_path: Thread.java + lineno: 1538 + in_app: false + - function: getAllStackTraces + module: java.lang.Thread + filename: Thread.java + abs_path: Thread.java + lineno: 1588 + in_app: false + - function: getCurrentThreads + module: io.sentry.core.SentryThreadFactory + filename: SentryThreadFactory.java + abs_path: SentryThreadFactory.java + lineno: 32 + in_app: false + - function: process + module: io.sentry.core.MainEventProcessor + filename: MainEventProcessor.java + abs_path: MainEventProcessor.java + lineno: 64 + in_app: false + - function: captureEvent + module: io.sentry.core.SentryClient + filename: SentryClient.java + abs_path: SentryClient.java + lineno: 105 + in_app: false + - function: $default$captureException + module: io.sentry.core.ISentryClient$-CC + filename: ISentryClient.java + abs_path: ISentryClient.java + lineno: 48 + in_app: false + - function: captureException + module: io.sentry.core.SentryClient + lineno: 0 + in_app: false + - function: $default$captureException + module: io.sentry.core.ISentryClient$-CC + filename: ISentryClient.java + abs_path: ISentryClient.java + lineno: 56 + in_app: false + - function: captureException + module: io.sentry.core.SentryClient + lineno: 0 + in_app: false + - function: captureException + module: io.sentry.core.Hub + filename: Hub.java + abs_path: Hub.java + lineno: 145 + in_app: false + - function: $default$captureException + module: io.sentry.core.IHub$-CC + filename: IHub.java + abs_path: IHub.java + lineno: 21 + in_app: false + - function: captureException + module: io.sentry.core.Hub + lineno: 0 + in_app: false + - function: captureException + module: io.sentry.core.Sentry + filename: Sentry.java + abs_path: Sentry.java + lineno: 87 + in_app: false + - function: lambda$onCreate$2 + module: io.sentry.sample.MainActivity + filename: MainActivity.java + abs_path: MainActivity.java + lineno: 36 + in_app: false + - function: onClick + module: io.sentry.sample.-$$Lambda$MainActivity$tVGPRGxxb8SivUa5SKhzp6BuXOI + lineno: 0 + in_app: false + - function: performClick + module: android.view.View + filename: View.java + abs_path: View.java + lineno: 6608 + in_app: false + - function: performClickInternal + module: android.view.View + filename: View.java + abs_path: View.java + lineno: 6585 + in_app: false + - function: access$3100 + module: android.view.View + filename: View.java + abs_path: View.java + lineno: 785 + in_app: false + - function: run + module: android.view.View$PerformClick + filename: View.java + abs_path: View.java + lineno: 25919 + in_app: false + - function: handleCallback + module: android.os.Handler + filename: Handler.java + abs_path: Handler.java + lineno: 873 + in_app: false + - function: dispatchMessage + module: android.os.Handler + filename: Handler.java + abs_path: Handler.java + lineno: 99 + in_app: false + - function: loop + module: android.os.Looper + filename: Looper.java + abs_path: Looper.java + lineno: 201 + in_app: false + - function: main + module: android.app.ActivityThread + filename: ActivityThread.java + abs_path: ActivityThread.java + lineno: 6810 + in_app: false + - function: invoke + module: java.lang.reflect.Method + filename: Method.java + abs_path: Method.java + in_app: false + - function: run + module: com.android.internal.os.RuntimeInit$MethodAndArgsCaller + filename: RuntimeInit.java + abs_path: RuntimeInit.java + lineno: 547 + in_app: false + - function: main + module: com.android.internal.os.ZygoteInit + filename: ZygoteInit.java + abs_path: ZygoteInit.java + lineno: 873 + in_app: false + errored: true + - id: 5274 + name: "|ANR-WatchDog|" + stacktrace: + frames: + - function: sleep + module: java.lang.Thread + filename: Thread.java + abs_path: Thread.java + in_app: false + - function: sleep + module: java.lang.Thread + filename: Thread.java + abs_path: Thread.java + lineno: 373 + in_app: false + - function: sleep + module: java.lang.Thread + filename: Thread.java + abs_path: Thread.java + lineno: 314 + in_app: false + - function: run + module: io.sentry.android.core.ANRWatchDog + filename: ANRWatchDog.java + abs_path: ANRWatchDog.java + lineno: 77 + in_app: false diff --git a/general/tests/test_fixtures.rs b/general/tests/test_fixtures.rs index 09d453577d..138ebea62f 100644 --- a/general/tests/test_fixtures.rs +++ b/general/tests/test_fixtures.rs @@ -23,6 +23,11 @@ macro_rules! event_snapshot { } } +#[test] +fn test_android() { + event_snapshot!("android"); +} + #[test] fn test_cocoa() { event_snapshot!("cocoa");