Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SIGTRAP when trying to get an object that contains a function with an unknown variable #577

Open
ceggert87 opened this issue Feb 25, 2022 · 2 comments

Comments

@ceggert87
Copy link

ceggert87 commented Feb 25, 2022

Hello everyone,

as the title might sound a bit confusing, please see the following example for the issue I am having:

val runtime = V8.createV8Runtime()
try {
    runtime.executeVoidScript("var test = { get number(){return nonexistantVariable;}};")
    val test = runtime.getObject("test")
    for (key in test.keys) {
        Log.d("TESTAPP", "Test: ${test.get(key)}")
    }
} catch(e: Exception) {
    Log.e("TESTAPP", e.toString())
}

Executing this example, SIGTRAP will be thrown when the code is trying to access "number". It runs fine when replacing nonexistantVariable with an actual number.

Is there any way to avoid this crash in a logic that works this way?

Tested with: 6.2.1, 6.1.0

Full error below:

2022-02-25 17:16:38.587 9585-9585/com.example.wifitest A/libc: Fatal signal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x6d88df0828 in tid 9585 (xample.wifitest), pid 9585 (xample.wifitest)
2022-02-25 17:16:38.650 11070-11070/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2022-02-25 17:16:38.650 11070-11070/? A/DEBUG: Build fingerprint: 'samsung/x1sxeea/x1s:11/RP1A.200720.012/G981BXXU7DUC7:user/release-keys'
2022-02-25 17:16:38.650 11070-11070/? A/DEBUG: Revision: '22'
2022-02-25 17:16:38.650 11070-11070/? A/DEBUG: ABI: 'arm64'
2022-02-25 17:16:38.651 11070-11070/? A/DEBUG: Timestamp: 2022-02-25 17:16:38+0100
2022-02-25 17:16:38.651 11070-11070/? A/DEBUG: pid: 9585, tid: 9585, name: xample.wifitest  >>> com.example.wifitest <<<
2022-02-25 17:16:38.651 11070-11070/? A/DEBUG: uid: 10730
2022-02-25 17:16:38.651 11070-11070/? A/DEBUG: signal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x6d88df0828
2022-02-25 17:16:38.651 11070-11070/? A/DEBUG:     x0  000000000000003e  x1  0000007fe38d6180  x2  000000000000003e  x3  ffffffffffffffff
2022-02-25 17:16:38.651 11070-11070/? A/DEBUG:     x4  ffffffffffffffff  x5  0000007fe38d61be  x6  000000000a0a230a  x7  7f7f7f7f7f7f7f7f
2022-02-25 17:16:38.651 11070-11070/? A/DEBUG:     x8  0000000000000001  x9  2877dfef056fb642  x10 0000000000004001  x11 0000000000000000
2022-02-25 17:16:38.651 11070-11070/? A/DEBUG:     x12 0000007fe38d5770  x13 0000007fe38d55fb  x14 00000070f931ad4a  x15 0000000000000001
2022-02-25 17:16:38.651 11070-11070/? A/DEBUG:     x16 0000006d89588158  x17 0000006d88df0810  x18 00000071002e4000  x19 0000007008a4189a
2022-02-25 17:16:38.651 11070-11070/? A/DEBUG:     x20 0000006ec899ec70  x21 0000000000000006  x22 0000006e489b8310  x23 0000006f88a5c1f0
2022-02-25 17:16:38.651 11070-11070/? A/DEBUG:     x24 0000000000000000  x25 0000006f88a5c1f8  x26 0000006e189b5a30  x27 0000006f88a5c200
2022-02-25 17:16:38.651 11070-11070/? A/DEBUG:     x28 0000007fe38d68c0  x29 0000007fe38d67e0
2022-02-25 17:16:38.651 11070-11070/? A/DEBUG:     lr  0000006d88798564  sp  0000007fe38d67e0  pc  0000006d88df0828  pst 0000000060000000
2022-02-25 17:16:38.757 687-791/? E/Netd: getNetworkForDns: getNetId from enterpriseCtrl is netid 0
2022-02-25 17:16:38.760 687-796/? E/Netd: getNetworkForDns: getNetId from enterpriseCtrl is netid 0
2022-02-25 17:16:38.879 11070-11070/? A/DEBUG: backtrace:
2022-02-25 17:16:38.879 11070-11070/? A/DEBUG:       #00 pc 0000000000bf0828  /data/app/~~YdO6aTM4C5H3m-9z_ghNIw==/com.example.wifitest-TTpml1shgnT7WvDRi_xzbg==/base.apk!libj2v8-android-arm64-v8a.so (offset 0x32000) (v8::base::OS::Abort()+24)
2022-02-25 17:16:38.879 11070-11070/? A/DEBUG:       #01 pc 0000000000598560  /data/app/~~YdO6aTM4C5H3m-9z_ghNIw==/com.example.wifitest-TTpml1shgnT7WvDRi_xzbg==/base.apk!libj2v8-android-arm64-v8a.so (offset 0x32000) (v8::V8::ToLocalEmpty()+116)
2022-02-25 17:16:38.879 11070-11070/? A/DEBUG:       #02 pc 00000000005876b8  /data/app/~~YdO6aTM4C5H3m-9z_ghNIw==/com.example.wifitest-TTpml1shgnT7WvDRi_xzbg==/base.apk!libj2v8-android-arm64-v8a.so (offset 0x32000) (Java_com_eclipsesource_v8_V8__1get+424)
2022-02-25 17:16:38.879 11070-11070/? A/DEBUG:       #03 pc 000000000013ded4  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.879 11070-11070/? A/DEBUG:       #04 pc 0000000000134564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.879 11070-11070/? A/DEBUG:       #05 pc 00000000001a9a78  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.879 11070-11070/? A/DEBUG:       #06 pc 0000000000321260  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.879 11070-11070/? A/DEBUG:       #07 pc 000000000031864c  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<true, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+696) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.879 11070-11070/? A/DEBUG:       #08 pc 000000000068bccc  /apex/com.android.art/lib64/libart.so (MterpInvokeDirectRange+436) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.879 11070-11070/? A/DEBUG:       #09 pc 000000000012ec14  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct_range+20) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.879 11070-11070/? A/DEBUG:       #10 pc 00000000002bc7d0  [anon:dalvik-classes.dex extracted in memory from /data/app/~~YdO6aTM4C5H3m-9z_ghNIw==/com.example.wifitest-TTpml1shgnT7WvDRi_xzbg==/base.apk] (com.eclipsesource.v8.V8.get)
2022-02-25 17:16:38.879 11070-11070/? A/DEBUG:       #11 pc 0000000000689d5c  /apex/com.android.art/lib64/libart.so (MterpInvokeVirtualRange+1132) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.879 11070-11070/? A/DEBUG:       #12 pc 000000000012eb14  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual_range+20) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.879 11070-11070/? A/DEBUG:       #13 pc 00000000002ba9c6  [anon:dalvik-classes.dex extracted in memory from /data/app/~~YdO6aTM4C5H3m-9z_ghNIw==/com.example.wifitest-TTpml1shgnT7WvDRi_xzbg==/base.apk] (com.eclipsesource.v8.V8Object.get+46)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #14 pc 00000000006864d8  /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+1520) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #15 pc 000000000012e814  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #16 pc 0000000000000c92  /data/data/com.example.wifitest/code_cache/.overlay/base.apk/classes3.dex (com.example.wifitest.FirstFragment.onViewCreated$lambda-0+74)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #17 pc 0000000000689434  /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+1224) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #18 pc 000000000012e994  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #19 pc 0000000000000c10  /data/data/com.example.wifitest/code_cache/.overlay/base.apk/classes3.dex (com.example.wifitest.FirstFragment.lambda$EaiBxapV8RqXCg-6XTRFjp77oKY)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #20 pc 0000000000689434  /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+1224) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #21 pc 000000000012e994  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #22 pc 0000000000000b08  /data/data/com.example.wifitest/code_cache/.overlay/base.apk/classes3.dex (com.example.wifitest.-$$Lambda$FirstFragment$EaiBxapV8RqXCg-6XTRFjp77oKY.onClick)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #23 pc 0000000000687f10  /apex/com.android.art/lib64/libart.so (MterpInvokeInterface+1808) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #24 pc 000000000012ea14  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_interface+20) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #25 pc 0000000000353cf6  /system/framework/framework.jar (offset 0x130b000) (android.view.View.performClick+34)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #26 pc 0000000000687290  /apex/com.android.art/lib64/libart.so (MterpInvokeSuper+2468) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #27 pc 000000000012e894  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_super+20) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #28 pc 000000000047c3c8  /system/framework/framework.jar (offset 0x130b000) (android.widget.TextView.performClick)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #29 pc 0000000000687290  /apex/com.android.art/lib64/libart.so (MterpInvokeSuper+2468) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #30 pc 000000000012e894  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_super+20) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #31 pc 00000000002d4cbe  [anon:dalvik-classes.dex extracted in memory from /data/app/~~YdO6aTM4C5H3m-9z_ghNIw==/com.example.wifitest-TTpml1shgnT7WvDRi_xzbg==/base.apk] (com.google.android.material.button.MaterialButton.performClick+6)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #32 pc 00000000006864d8  /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+1520) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #33 pc 000000000012e814  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #34 pc 0000000000353d2a  /system/framework/framework.jar (offset 0x130b000) (android.view.View.performClickInternal+6)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #35 pc 0000000000688b54  /apex/com.android.art/lib64/libart.so (MterpInvokeDirect+1248) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #36 pc 000000000012e914  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #37 pc 000000000034ed6c  /system/framework/framework.jar (offset 0x130b000) (android.view.View.access$3700)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #38 pc 0000000000689434  /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+1224) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #39 pc 000000000012e994  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #40 pc 0000000000326050  /system/framework/framework.jar (offset 0x130b000) (android.view.View$PerformClick.run+16)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #41 pc 0000000000687f10  /apex/com.android.art/lib64/libart.so (MterpInvokeInterface+1808) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #42 pc 000000000012ea14  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_interface+20) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #43 pc 000000000040d6fc  /system/framework/framework.jar (offset 0x9c6000) (android.os.Handler.handleCallback+4)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #44 pc 0000000000689434  /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+1224) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #45 pc 000000000012e994  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #46 pc 000000000040d570  /system/framework/framework.jar (offset 0x9c6000) (android.os.Handler.dispatchMessage+8)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #47 pc 00000000006864d8  /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+1520) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #48 pc 000000000012e814  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #49 pc 000000000044cdf8  /system/framework/framework.jar (offset 0x9c6000) (android.os.Looper.loop+480)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #50 pc 000000000030eb88  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.13836355384225087550)+268) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #51 pc 0000000000316b78  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+200) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.880 11070-11070/? A/DEBUG:       #52 pc 0000000000317f60  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, true>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1772) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #53 pc 0000000000178f40  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<true, false>(art::interpreter::SwitchImplContext*)+57848) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #54 pc 00000000001407d8  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #55 pc 00000000001caec4  /system/framework/framework.jar (android.app.ActivityThread.main)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #56 pc 000000000030ec90  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.13836355384225087550)+532) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #57 pc 0000000000674cbc  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #58 pc 000000000013dff8  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #59 pc 00000000001347e8  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #60 pc 00000000001a9a94  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #61 pc 000000000055ec64  /apex/com.android.art/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1364) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #62 pc 00000000004ddfd0  /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+52) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #63 pc 000000000008a6f4  /apex/com.android.art/javalib/arm64/boot.oat (art_jni_trampoline+180) (BuildId: c3475b07d0e9fda8252c4d048848217b2ca92b3c)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #64 pc 0000000000134564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #65 pc 00000000001a9a78  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #66 pc 0000000000321260  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #67 pc 000000000031758c  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #68 pc 0000000000686238  /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+848) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #69 pc 000000000012e814  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #70 pc 000000000022fcfe  /system/framework/framework.jar (offset 0x1bed000) (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #71 pc 000000000030eb88  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.13836355384225087550)+268) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #72 pc 0000000000674cbc  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #73 pc 000000000013dff8  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #74 pc 0000000000b0199c  /system/framework/arm64/boot-framework.oat (com.android.internal.os.ZygoteInit.main+2444) (BuildId: 96ad399ddf591a6bcb09b18e182457e1df4a76f3)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #75 pc 00000000001347e8  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #76 pc 00000000001a9a94  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #77 pc 000000000055d6a0  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list)+448) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #78 pc 000000000055db54  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+92) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #79 pc 0000000000441afc  /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+656) (BuildId: 8600ff2068bac22eb5cdf533586b2083)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #80 pc 000000000009d424  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+124) (BuildId: 908512d912ad58e72cffcd272d8dc6f1)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #81 pc 00000000000a5244  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+848) (BuildId: 908512d912ad58e72cffcd272d8dc6f1)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #82 pc 0000000000003594  /system/bin/app_process64 (main+1356) (BuildId: 1b1b967ddfe0761f978fc1b2bd9ea55a)
2022-02-25 17:16:38.881 11070-11070/? A/DEBUG:       #83 pc 0000000000049b14  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108) (BuildId: 0537c1e6838792775ce275f0ee9e5270)
2022-02-25 17:16:39.186 671-671/? E/tombstoned: Tombstone written to: /data/tombstones/tombstone_29

@caoccao
Copy link

caoccao commented Mar 2, 2022

I tried this in Javet. It works fine.

try (V8Runtime v8Runtime = V8Host.getV8Instance().createV8Runtime()) {
    v8Runtime.getExecutor("var test = { get number(){return nonexistantVariable;}};").executeVoid();
    System.out.println(v8Runtime.getGlobalObject().getObject("test").toString());
}

/*
Output:
{}
<unknown>:26: Uncaught ReferenceError: nonexistantVariable is not defined
*/

@ceggert87
Copy link
Author

I tried this in Javet. It works fine.

Now that's some advertisement :D. Tried it using a similar approach as my example above

            try {
                val runtime: V8Runtime = V8Host.getV8Instance().createV8Runtime()
                runtime.getExecutor("var test = { get number(){return nonexistantvariable;}};").executeVoid()
                val test = runtime.globalObject.get<V8ValueObject>("test")
                test.forEach<V8Value, RuntimeException> { it: V8Value ->
                    Log.d("TESTAPP", "${test.get<V8Value>(it)}")
                }
            } catch (e: JavetException) {
                Log.e("TESTAPP", "$e")
            }

Output is "undefined", just as expected. I think I'll be migrating our software then. Thanks a lot!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants