When launching with debugger (according to guide from inspector_how_to) ArkTS VM hangs after all user-provided code is executed. Freeze ends after any action done in debugger-client, but then an error in Runtime::Shutdown
appears.
Runtime::Shutdown
must execute without exceptions
Execute ark
with debugger, run code until the end and trigger any command from client
$ lldb -- ./ark --log-level=info --load-runtimes=ets --interpreter-type=cpp --boot-panda-files=../plugins/ets/etsstdlib.abc --debugger-library-path=../lib/libarkinspector.so --debugger-break-on-start testing.abc ETSGLOBAL::main
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'lldb.embedded_interpreter'
(lldb) target create "./ark"
Current executable set to '/home/huawei/src/openharmony/arkcompiler/runtime_core/static_core/build_with_asio/bin/ark' (x86_64).
(lldb) settings set -- target.run-args "--log-level=info" "--load-runtimes=ets" "--interpreter-type=cpp" "--boot-panda-files=../plugins/ets/etsstdlib.abc" "--debugger-library-path=../lib/libarkinspector.so" "--debugger-break-on-start" "testing.abc" "ETSGLOBAL::main"
(lldb) r
Process 11108 launched: '/home/huawei/src/openharmony/arkcompiler/runtime_core/static_core/build_with_asio/bin/ark' (x86_64)
[TID 002b64] I/runtime: find sigaction success
[TID 002b64] I/runtime: find sigprocmask success
[TID 002b64] I/debugger: Inspector server listening on [::]:19015
[TID 002c05] I/gc: [1] [TENURED (Threshold)] Mar 20 14:35:43.401 G1 GC freed 0(0B), 0(0B) LOS objects, 100% free, 27KB/512MB, phase: COMMON_PAUSE paused: 434.896us phase: REMARK_PAUSE paused: 18.759us total: 624.651us
[TID 002c1b] I/debugger: connect: WebSocket Connection [::ffff:127.0.0.1]:40608 v13 "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36" / 101
[TID 002c1b] I/common: JsonParser: Successfully parsed JSON-object
[TID 002c1b] I/common: JsonParser: Successfully parsed JSON-object
[TID 002c1b] I/common: JsonParser: Successfully parsed JSON-object
[TID 002c1b] I/common: JsonParser: Successfully parsed JSON-object
[TID 002c1b] W/debugger: Unsupported method: {"id":4,"method":"Debugger.setAsyncCallStackDepth","params":{"maxDepth":32}}
[TID 002c1b] I/common: JsonParser: Successfully parsed JSON-object
[TID 002c1b] W/debugger: Unsupported method: {"id":5,"method":"Profiler.enable","params":{}}
[TID 002c1b] I/common: JsonParser: Successfully parsed JSON-object
[TID 002c1b] W/debugger: Unsupported method: {"id":6,"method":"Debugger.setBlackboxPatterns","params":{"patterns":["/node_modules/|/bower_components/"]}}
[TID 002c1b] I/common: JsonParser: Successfully parsed JSON-object
[TID 002c1b] I/common: JsonParser: Successfully parsed JSON-object
[TID 002c1b] I/common: JsonParser: Successfully parsed JSON-object
[TID 002c1b] I/common: JsonParser: Successfully parsed JSON-object
1
4
[TID 002c05] I/gc: [2] [TENURED (Threshold)] Mar 20 14:35:50.665 G1 GC freed 1(0B), 0(0B) LOS objects, 100% free, 34KB/512MB, phase: COMMON_PAUSE paused: 394.978us phase: REMARK_PAUSE paused: 19.532us total: 556.024us
"abc"
"abcd"
1
2
Process 11108 stopped
* thread #1, name = 'ark', stop reason = signal SIGSTOP
frame #0: 0x00007ffff6491117 libc.so.6`__GI___futex_abstimed_wait_cancelable64 at futex-internal.c:57:12
(lldb) bt
* thread #1, name = 'ark', stop reason = signal SIGSTOP
* frame #0: 0x00007ffff6491117 libc.so.6`__GI___futex_abstimed_wait_cancelable64 at futex-internal.c:57:12
frame #1: 0x00007ffff64910e9 libc.so.6`__GI___futex_abstimed_wait_cancelable64 at futex-internal.c:87:9
frame #2: 0x00007ffff64910e9 libc.so.6`__GI___futex_abstimed_wait_cancelable64(futex_word=0x00007fffe3fff910, expected=11291, clockid=<unavailable>, abstime=0x0000000000000000, private=<unavailable>) at futex-internal.c:139:10
frame #3: 0x00007ffff6496624 libc.so.6`__pthread_clockjoin_ex(threadid=140737018590784, thread_return=0x0000000000000000, clockid=0, abstime=0x0000000000000000, block=<unavailable>) at pthread_join_common.c:105:14
frame #4: 0x00007ffff68dc2c7 libstdc++.so.6`std::thread::join() + 23
frame #5: 0x00007ffff011a8c4 libarkinspector.so`ark::tooling::inspector::Inspector::~Inspector(this=0x00007ffff0175fc0) at inspector.cpp:94:23
frame #6: 0x00007ffff0114715 libarkinspector.so`::StopDebugger() [inlined] std::_Optional_payload_base<ark::tooling::inspector::Inspector>::_M_destroy(this=<unavailable>) at optional:260:35
frame #7: 0x00007ffff0114702 libarkinspector.so`::StopDebugger() [inlined] std::_Optional_payload_base<ark::tooling::inspector::Inspector>::_M_reset(this=<unavailable>) at optional:280:14
frame #8: 0x00007ffff0114702 libarkinspector.so`::StopDebugger() [inlined] std::_Optional_base_impl<ark::tooling::inspector::Inspector, std::_Optional_base<ark::tooling::inspector::Inspector, false, false> >::_M_reset(this=<unavailable>) at optional:430:53
frame #9: 0x00007ffff0114702 libarkinspector.so`::StopDebugger() [inlined] std::optional<ark::tooling::inspector::Inspector>::reset(this=<unavailable>) at optional:1005:66
frame #10: 0x00007ffff0114702 libarkinspector.so`::StopDebugger() at init.cpp:58:22
frame #11: 0x00007ffff79d344e libarkruntime.so`ark::DefaultDebuggerAgent::CallUnloadCallback(this=<unavailable>, resolvedFunction=<unavailable>) at default_debugger_agent.cpp:69:63
frame #12: 0x00007ffff79d20ab libarkruntime.so`ark::LibraryAgent::Unload(this=0x00007ffff538a800) at loadable_agent.cpp:69:28
frame #13: 0x00007ffff79d3367 libarkruntime.so`ark::DefaultDebuggerAgent::Unload(this=0x00007ffff538a800) at default_debugger_agent.cpp:42:39
frame #14: 0x00007ffff77cd94c libarkruntime.so`std::_Sp_counted_deleter<ark::DefaultDebuggerAgent*, std::shared_ptr<ark::LoadableAgent> ark::LibraryAgentLoader<ark::DefaultDebuggerAgent, false>::LoadInstance<>()::'lambda'(ark::DefaultDebuggerAgent*), std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() [inlined] std::shared_ptr<ark::LoadableAgent> ark::LibraryAgentLoader<ark::DefaultDebuggerAgent, false>::LoadInstance<>(ptr=0x00007ffff538a800, __closure=<unavailable>)::'lambda'(ark::DefaultDebuggerAgent*)::operator()(ark::DefaultDebuggerAgent*) const at loadable_agent.h:96:24
frame #15: 0x00007ffff77cd943 libarkruntime.so`std::_Sp_counted_deleter<ark::DefaultDebuggerAgent*, std::shared_ptr<ark::LoadableAgent> ark::LibraryAgentLoader<ark::DefaultDebuggerAgent, false>::LoadInstance<>()::'lambda'(ark::DefaultDebuggerAgent*), std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose(this=<unavailable>) at shared_ptr_base.h:442:25
frame #16: 0x00007ffff78f0af7 libarkruntime.so`ark::Runtime::Shutdown() [inlined] std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release(this=0x000000010009f980) at shared_ptr_base.h:168:16
frame #17: 0x00007ffff78f0adf libarkruntime.so`ark::Runtime::Shutdown() [inlined] std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(this=0x00007ffffffee878, __in_chrg=<unavailable>) at shared_ptr_base.h:705:21
frame #18: 0x00007ffff78f0adf libarkruntime.so`ark::Runtime::Shutdown() [inlined] std::__shared_ptr<ark::LoadableAgent, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr(this=0x00007ffffffee870, __in_chrg=<unavailable>) at shared_ptr_base.h:1154:7
frame #19: 0x00007ffff78f0adf libarkruntime.so`ark::Runtime::Shutdown() [inlined] std::__shared_ptr<ark::LoadableAgent, (__gnu_cxx::_Lock_policy)2>::reset(this=<unavailable>) at shared_ptr_base.h:1272:9
frame #20: 0x00007ffff78f0adf libarkruntime.so`ark::Runtime::Shutdown() [inlined] ark::PandaVM::UnloadDebuggerAgent(this=<unavailable>) at panda_vm.h:210:29
frame #21: 0x00007ffff78f0adf libarkruntime.so`ark::Runtime::Shutdown(this=0x000000010007b4d0) at runtime.cpp:1227:34
frame #22: 0x00007ffff78f99ec libarkruntime.so`ark::Runtime::DestroyUnderLockHolder() at runtime.cpp:390:29
frame #23: 0x00007ffff78f9c65 libarkruntime.so`ark::Runtime::Destroy() at runtime.cpp:468:27
frame #24: 0x000000010001cc6b ark`ark::Main(argc=9, argv=<unavailable>) at panda.cpp:205:26
frame #25: 0x000000010001d0f6 ark`main(argc=<unavailable>, argv=<unavailable>) at panda.cpp:216:21
frame #26: 0x00007ffff6429d90 libc.so.6`__libc_start_call_main(main=(ark`main at panda.cpp:215:1), argc=9, argv=0x00007fffffffdc08) at libc_start_call_main.h:58:16
frame #27: 0x00007ffff6429e40 libc.so.6`__libc_start_main_impl(main=(ark`main at panda.cpp:215:1), argc=9, argv=0x00007fffffffdc08, init=0x00007ffff7ffd040, fini=<unavailable>, rtld_fini=<unavailable>, stack_end=0x00007fffffffdbf8) at libc-start.c:392:3
frame #28: 0x000000010001b155 ark`_start + 37
(lldb) c
Process 11108 resuming
[TID 002c1b] I/common: JsonParser: Successfully parsed JSON-object
[TID 002c1b] W/debugger: Unsupported method: {"id":11,"method":"Debugger.setSkipAllPauses","params":{"skip":false}}
[TID 002c1b] I/common: JsonParser: Successfully parsed JSON-object
Process 11108 stopped
* thread #1, name = 'ark', stop reason = signal SIGSEGV: invalid address (fault address: 0x528)
frame #0: 0x00007ffff77cb60b libarkruntime.so`ark::MutatorLock::HasLock() const [inlined] ark::Thread::GetLockState(this=0x0000000000000000) const at thread.h:320:16
317 #ifndef NDEBUG
318 MutatorLock::MutatorLockState GetLockState() const
319 {
-> 320 return lockState_;
321 }
322
323 void SetLockState(MutatorLock::MutatorLockState state)
This issue continues I9A6S4
感谢提交Issue!关于Issue的交互操作,请访问OpenHarmony社区支持命令清单。如果有问题,请联系 @godmiaozi @peijiajun @Prof1983 @v-cherkashin 。如果需要调整订阅PR、Issue的变更状态,请访问链接。
Thanks for submitting the issue. For more commands, please visit OpenHarmony Command List. If you have any questions, please refer to committer @godmiaozi @peijiajun @Prof1983 @v-cherkashin for help. If you need to change the subscription of a Pull Request or Issue, please visit the link.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
登录 后才可以发表评论