Werner Dittmann
Werner Dittmann

Reputation: 31

Where to start debugging and analyzing crashes

I tried to start a fairly complex application within ARC. The app uses native code which is available as armeabi-v7a and as x86 libraries, the app starts native threads (inside the C++ code), uses Java reflection, audio and camera, callback from C++ into Java, etc. I use API 19 as target API.

After a short time I get a plugin crash. When I do an inspect the JS console of my app just says:

0xA559F1B5 is not a valid instance ID.    gen_index.min.js:108 
plugin crashed: captured minidump         gen_index.min.js:108
 Plugin.showCrash

Another inspect shows this:

ARC Window Popup: 26.180ms                   gen_main.min.js:64
ARC appWindow Init: 2.260ms                  gen_main.min.js:66 
ARC onInstalled HTML5 FS init: 99.148ms      gen_main.min.js:33 
Received a crash                             gen_main.min.js:35
prod: ARC                                    gen_main.min.js:35
arc_app_name: Test App                       gen_main.min.js:35
ptime: 2447.646000000532                     gen_main.min.js:35
crash_time: Mon Apr 06 2015 18:47:02 GMT+0200 (CEST) gen_main.min.js:35 
ver: 41.4410.244.23                          gen_main.min.js:35
arc_build_tag: arc-runtime-41.4410.244.23    gen_main.min.js:35 
message: captured minidump                   gen_main.min.js:35
chrome_version: 41.0.2272.118                gen_main.min.js:35
app_id: fcandlahgkkneipfaibdnpapcbeekibb     gen_main.min.js:35
app_version: 2109.0                          gen_main.min.js:35
app_package_name: com.mytest.tester          gen_main.min.js:35
runtime_name: App Runtime for Chrome (Beta)  gen_main.min.js:35
runtime_update_url: https://clients2.google.com/service/update2/crx gen_main.min.js:35
width: 960                                   gen_main.min.js:35
height: 632                                  gen_main.min.js:35
is_minimized: false                          gen_main.min.js:35
is_maximized: false                          gen_main.min.js:35
is_fullscreen: false                         gen_main.min.js:35
runtime_updated_while_running: null          gen_main.min.js:35
arch: x86-64                                 gen_main.min.js:35
nacl_arch: x86-64                            gen_main.min.js:35
os: linux                                    gen_main.min.js:30
Attempting to report crash...                gen_main.min.js:35
FINISHED REPORTING CRASH                     gen_main.min.js:28
Successfully uploaded crash report           gen_main.min.js:28 
crash id: 26afdf52644598bc                   gen_main.min.js:23
the child process has been loaded: so_executable/umareporter gen_main.min.js:26 
ChildPlugin backgroundpage:0:umareporter(so_executable) Run: 37.220ms gen_main.min.js:26 
0xFA6FC071 is not a valid instance ID.

No further information. The JS console of ARC shows no error message.

The "plugin.shell('adbd')" tells me "not ready", maybe because the application was not yet started.

The questions I have: where to find more crash information? How to start debugging? What's the "minidump" and does it contains any valuable information? Can I build something into my app to pin down the problems?

Any pointers to appreciated :-) .

Upvotes: 1

Views: 1248

Answers (1)

Elijah Taylor
Elijah Taylor

Reputation: 519

To get more logs when the plugin has already crashed (and therefore is 'not ready'), try following the guide to get stdout/stderr from https://developer.chrome.com/apps/getstarted_arc#bestpractices

There is no easy way to attach to ARC with symbol information to debug right now, and the crash server is not available to users. You can always file a bug to get help with crashes like this, it is probably better to do this in the future than StackOverflow since this forum is more about programming with ARC.

I looked up your particular crash on our crash server (by crash ID posted here, please continue to include these IDs in any future bugs you file), and I can say the cause was an unimplemented VMUL SIMD instruction in ARC's NDK translation layer. This has been implemented in newer versions of ARC, so you can try running your app in Chrome 43 (dev channel) to see if you can proceed.

Upvotes: 1

Related Questions