HarmonyOS鸿蒙Next中OH_JSVM_OpenInspector使用问题
HarmonyOS鸿蒙Next中OH_JSVM_OpenInspector使用问题 JSVM-API调试&定位:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/napi/jsvm-debugger-cpuprofiler-heapsnapshot.md
按照文档开启9225端口,并转发到电脑的9229端口,然后在chrome上打开inspector后,出现了几个现象:
- chrome的inspector没有展示源码,如下图所示
- 打开inspector后再次调用jsvm的OH_JSVM_RunScript方法,会出现崩溃,堆栈如下:
Uid:20020184
Process name:com.example.edgeenginedemo
Process life time:169s
Reason:Signal:SIGSEGV(SEGV_MAPERR)@0x0000000000010940
Fault thread info:
Tid:10398, Name:.edgeenginedemo
#00 pc 00000000015b532c /system/lib64/ndk/libjsvm.so(v8::internal::Isolate::main_thread_local_heap()+12)
#01 pc 0020005c3d40bf4c Not mapped
#02 pc 0000000001551664 /system/lib64/ndk/libjsvm.so(v8::internal::BreakIterator::SetDebugBreak()+204)
#03 pc 0000000001555dec /system/lib64/ndk/libjsvm.so(v8::internal::Debug::FloodWithOneShot(v8::internal::Handle<v8::internal::SharedFunctionInfo>, bool)+248)
#04 pc 0000000001a0e7d0 /system/lib64/ndk/libjsvm.so(v8::internal::Runtime_DebugOnFunctionCall(int, unsigned long*, v8::internal::Isolate*)+136)
#05 pc 0000000000f720b4 /system/lib64/ndk/libjsvm.so(Builtins_CEntry_Return1_ArgvOnStack_NoBuiltinExit+84)
#06 pc 0000000000edeac4 /system/lib64/ndk/libjsvm.so(Builtins_CallFunction_ReceiverIsAny+420)
#07 pc 0000000000ee73a8 /system/lib64/ndk/libjsvm.so(Builtins_JSEntryTrampoline+168)
#08 pc 0000000000ee7090 /system/lib64/ndk/libjsvm.so(Builtins_JSEntry+144)
#09 pc 000000000159b794 /system/lib64/ndk/libjsvm.so(v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&)+2284)
#10 pc 000000000159bb3c /system/lib64/ndk/libjsvm.so(v8::internal::Execution::CallScript(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSFunction>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>)+104)
#11 pc 000000000141c680 /system/lib64/ndk/libjsvm.so(v8::Script::Run(v8::Local<v8::Context>, v8::Local<v8::Data>)+508)
#12 pc 0000000000c68558 /system/lib64/ndk/libjsvm.so(OH_JSVM_RunScript+284)
#13 pc 0000000000036ed4 /data/storage/el1/bundle/libs/arm64/libentry.so(EdgeEngineInstance::EvalUateJS(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)+308)(ca129cfeb8ebb27cf6ff07674762acca8ede00a1)
#14 pc 00000000000283c8 /data/storage/el1/bundle/libs/arm64/libentry.so(ca129cfeb8ebb27cf6ff07674762acca8ede00a1)
#15 pc 000000000003bff8 /system/lib64/platformsdk/libace_napi.z.so(panda::JSValueRef ArkNativeFunctionCallBack<true>(panda::JsiRuntimeCallInfo*)+216)(e14950c654205757a26744aaff615d4e)
#16 pc 0000000000332130 /system/lib64/module/arkcompiler/stub.an(RTStub_PushCallArgsAndDispatchNative+40)
#17 at sendEvent (entry/src/main/ets/edgeEngine/EdgeEngine.ets:32:5)
更多关于HarmonyOS鸿蒙Next中OH_JSVM_OpenInspector使用问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
崩溃说明js文件有问题吧,调试不是就是为了识别代码中的问题吗?断点调试定位一下呢
更多关于HarmonyOS鸿蒙Next中OH_JSVM_OpenInspector使用问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
不是js文件的问题,因为不开启OH_JSVM_OpenInspector,单独执行js文件是没有问题的。
断点调试js吗?断点调试js得开启OH_JSVM_OpenInspector,然后在chrome里调用。
在HarmonyOS鸿蒙Next中,OH_JSVM_OpenInspector
是一个用于调试JavaScript代码的API。它允许开发者在设备上启动一个JavaScript调试会话,通常用于查看和调试运行在鸿蒙系统上的JS应用。使用该API时,开发者需要确保设备与调试工具(如DevEco Studio)连接正常,并且设备的调试模式已启用。
常见问题可能包括:
- 调试会话无法启动:检查设备是否支持调试功能,确保调试工具与设备连接正常。
- 调试信息不完整:确认应用的JS代码是否正确加载,以及调试工具的配置是否正确。
- 权限问题:确保应用具有调试权限,通常在应用配置文件中需要明确声明调试权限。
如果遇到问题,建议检查相关日志信息,通常在系统的日志文件中可以找到详细的错误信息。