full debug stacktrace ```console 2020-06-14 21:14:13.495 28667-28667/? A/DEBUG: #00 pc 000000000029e4e8 /data/app/org.hapjs.mockup-p8e0E5lxR7_KO_oGkm6tOw==/lib/arm64/libjsenv.so 2020-06-14 21:14:13.495 28667-28667/? A/DEBUG: #01 pc 0000000000297040 /data/app/org.hapjs.mockup-p8e0E5lxR7_KO_oGkm6tOw==/lib/arm64/libjsenv.so 2020-06-14 21:14:13.495 28667-28667/? A/DEBUG: #02 pc 0000000000296aec /data/app/org.hapjs.mockup-p8e0E5lxR7_KO_oGkm6tOw==/lib/arm64/libjsenv.so 2020-06-14 21:14:13.495 28667-28667/? A/DEBUG: #03 pc 0000000000463c40 /data/app/org.hapjs.mockup-p8e0E5lxR7_KO_oGkm6tOw==/lib/arm64/libjsenv.so (v8::internal::Debug::StopSideEffectCheckMode()+824) 2020-06-14 21:14:13.495 28667-28667/? A/DEBUG: #04 pc 0000000000445f78 /data/app/org.hapjs.mockup-p8e0E5lxR7_KO_oGkm6tOw==/lib/arm64/libjsenv.so 2020-06-14 21:14:13.495 28667-28667/? A/DEBUG: #05 pc 000000000031bb38 /data/app/org.hapjs.mockup-p8e0E5lxR7_KO_oGkm6tOw==/lib/arm64/libjsenv.so (v8::debug::EvaluateGlobal(v8::Isolate*, v8::Local<v8::String>, v8::debug::EvaluateGlobalMode, bool)+260) 2020-06-14 21:14:13.495 28667-28667/? A/DEBUG: #06 pc 0000000000d4ddc8 /data/app/org.hapjs.mockup-p8e0E5lxR7_KO_oGkm6tOw==/lib/arm64/libjsenv.so 2020-06-14 21:14:13.495 28667-28667/? A/DEBUG: #07 pc 0000000000d03490 /data/app/org.hapjs.mockup-p8e0E5lxR7_KO_oGkm6tOw==/lib/arm64/libjsenv.so 2020-06-14 21:14:13.495 28667-28667/? A/DEBUG: #08 pc 0000000000d0803c /data/app/org.hapjs.mockup-p8e0E5lxR7_KO_oGkm6tOw==/lib/arm64/libjsenv.so 2020-06-14 21:14:13.495 28667-28667/? A/DEBUG: #09 pc 0000000000d69640 /data/app/org.hapjs.mockup-p8e0E5lxR7_KO_oGkm6tOw==/lib/arm64/libjsenv.so 2020-06-14 21:14:13.495 28667-28667/? A/DEBUG: #10 pc 0000000000d47ce8 /data/app/org.hapjs.mockup-p8e0E5lxR7_KO_oGkm6tOw==/lib/arm64/libjsenv.so 2020-06-14 21:14:13.495 28667-28667/? A/DEBUG: #11 pc 000000000026d79c /data/app/org.hapjs.mockup-p8e0E5lxR7_KO_oGkm6tOw==/lib/arm64/libjsenv.so 2020-06-14 21:14:13.495 28667-28667/? A/DEBUG: #12 pc 0000000000003d30 /data/app/org.hapjs.mockup-p8e0E5lxR7_KO_oGkm6tOw==/lib/arm64/libinspector.so (inspector::HybridInspector::nativeHandleMessage(_JNIEnv*, _jobject*, long, int, _jstring*)+224) 2020-06-14 21:14:13.495 28667-28667/? A/DEBUG: #13 pc 0000000000053b58 /data/app/org.hapjs.mockup-p8e0E5lxR7_KO_oGkm6tOw==/oat/arm64/base.odex (offset 0x33000) ```
On Sunday, June 14, 2020 at 9:23:55 PM UTC+8 techni...@gmail.com wrote: > This is debug build, on release build, I am getting null pointer reference > on `(void)f->Call(context, Undefined(isolate), 3, args);` this line, but f > is not nullpointer as I debug. > > On Sunday, June 14, 2020 at 9:20:36 PM UTC+8 techni...@gmail.com wrote: > >> I am implementing a PromiseRejection hook for android. But when I upgrade >> to v8 8.3. It crashes. >> >> logcat >> >> ```console >> 2020-06-14 21:14:12.690 28467-28517/org.hapjs.mockup E/v8: # >> # Fatal error in ../../src/debug/debug.cc, line 2204 >> # >> 2020-06-14 21:14:12.690 28467-28517/org.hapjs.mockup E/v8: Debug check >> failed: isolate_->has_pending_exception(). >> ``` >> >> ```cpp >> void handle(PromiseRejectMessage message) { >> auto promise = message.GetPromise(); >> auto event = message.GetEvent(); >> auto value = message.GetValue(); >> >> Isolate* isolate = promise->GetIsolate(); >> Local<Context> context = isolate->GetCurrentContext(); >> Local<String> quickApp = >> String::NewFromUtf8(isolate, "QuickApp", NewStringType::kNormal) >> .ToLocalChecked(); >> Local<String> p = >> String::NewFromUtf8(isolate, "unhandledrejection", NewStringType::kNormal) >> .ToLocalChecked(); >> v8::Local<v8::Object> global = >> context->Global()->GetPrototype().As<v8::Object>(); >> >> v8::Local<v8::Value> quickAppGlobalMaybe; >> (void)global->Get(context, quickApp).ToLocal(&quickAppGlobalMaybe); >> if (quickAppGlobalMaybe.IsEmpty() || !quickAppGlobalMaybe->IsObject()) { >> return; >> } >> >> Local<v8::Object> quickAppGlobal = quickAppGlobalMaybe.As<Object>(); >> >> v8::Local<v8::Value> rejectFunc; >> (void)quickAppGlobal->Get(context, p).ToLocal(&rejectFunc); >> >> if (rejectFunc->IsFunction()) { >> Local<Function> f = rejectFunc.As<Function>(); >> Local<Value> type = Number::New(isolate, event); >> Local<Value> args[] = {type, promise, value}; >> >> // See https://github.com/nodejs/node/pull/29513 >> if(value.IsEmpty()){ >> value = v8::Undefined(isolate); >> } >> v8::TryCatch try_catch(isolate); >> (void)f->Call(context, Undefined(isolate), 3, args); >> if (try_catch.HasCaught() && !try_catch.HasTerminated()) { >> fprintf(stderr, "Exception in PromiseRejectCallback:\n"); >> } >> } >> } >> ``` >> >> Anyone can help me on this one, thanks. >> >> -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-users/8c0f5df9-ef75-4b53-9265-7dfac9817374n%40googlegroups.com.