llnode icon indicating copy to clipboard operation
llnode copied to clipboard

bug(print-source): libc++abi: terminating with uncaught exception

Open tony-go opened this issue 3 years ago • 0 comments

Describe the bug llnode crashes when I run v8 i -s <addr>.

To reproduce

  • Having this file crash.js
'use strict';

throw new Error('this is uncaught');
  • Running node --abort-on-uncaught-exception crash.js
  • Loaded core with llnode node/location -c core/location
  • Ran command v8 bt:
(llnode) v8 bt
 * thread #1: tid = 0x0000, 0x0000000101756ca5 node`v8::base::OS::Abort() (.cold.1) + 5
  * frame #0: 0x0000000101756ca5 node`v8::base::OS::Abort() (.cold.1) + 5
    frame #1: 0x000000010147fa77 node`v8::base::OS::Abort() + 23
    frame #2: 0x00000001006e10bb node`v8::internal::Isolate::CreateMessageOrAbort(v8::internal::Handle<v8::internal::Object>, v8::internal::MessageLocation*) + 171
    frame #3: 0x00000001006e0aae node`v8::internal::Isolate::ThrowInternal(v8::internal::Object, v8::internal::MessageLocation*) + 958
    frame #4: 0x0000000100ae0ecf node`v8::internal::Runtime_Throw(int, unsigned long*, v8::internal::Isolate*) + 47
    frame #5: 0x0000000100e8b319 <exit>
    frame #6: 0x0000000100f20d5a <stub>
    frame #7: 0x0000000100e1ddea (this=0x2f03a76913e9:<Object: Object>, 0x2f03a76913e9:<Object: Object>, 0x2f03a7693201:<function: require at node:internal/modules/cjs/helpers:1:10>, 0x2f03a76911e1:<Object: Module>, 0x2f03a768f159:<String: "/Users/jamiamer/...">, 0x2f03a7693131:<String: "/Users/jamiamer/...">) at /Users/jamiamer/projects/llnode-tuto/simple-crash.js:1:0 fn=0x00002f03a7692e11
...
  • Ran command v8 i -s 0x2f03a7693201:
  • Crash.

Expected behavior Having the source of the function printed in the console.

Console output

(llnode) v8 i -s 0x2f03a7693201
libc++abi: terminating with uncaught exception of type std::out_of_range: basic_string
PLEASE submit a bug report to https://developer.apple.com/bug-reporting/ and include the crash backtrace.
Stack dump:
0.	Program arguments: /Library/Developer/CommandLineTools/usr/bin/lldb --one-line "plugin load '/usr/local/Cellar/llnode/4.0.0/lib/node_modules/llnode/llnode.dylib'" --one-line "settings set prompt '(llnode) '" node -c /cores/core.1403
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  lldb                     0x0000000100695357 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 39
1  lldb                     0x0000000100694a85 llvm::sys::RunSignalHandlers() + 85
2  lldb                     0x0000000100695a00 SignalHandler(int) + 288
3  libsystem_platform.dylib 0x00007ff8174e6dfd _sigtramp + 29
4  libsystem_platform.dylib 0x00007f7e00000400 _sigtramp + 18446743549332526624
5  libsystem_c.dylib        0x00007ff81741cd24 abort + 123
6  libc++abi.dylib          0x00007ff81748d082 abort_message + 241
7  libc++abi.dylib          0x00007ff81747e1a5 demangling_terminate_handler() + 242
8  libobjc.A.dylib          0x00007ff81737ae19 _objc_terminate() + 104
9  libc++abi.dylib          0x00007ff81748c4a7 std::__terminate(void (*)()) + 8
10 libc++abi.dylib          0x00007ff81748ed05 __cxa_get_exception_ptr + 0
11 libc++abi.dylib          0x00007ff81748eccc __cxxabiv1::exception_cleanup_func(_Unwind_Reason_Code, _Unwind_Exception*) + 0
12 libc++.1.dylib           0x00007ff817432a34 std::__1::__throw_out_of_range(char const*) + 56
13 libc++.1.dylib           0x00007ff8174329fc std::__1::__throw_out_of_range(char const*) + 0
14 libc++.1.dylib           0x00007ff817432c1d std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__throw_out_of_range() const + 9
15 libc++.1.dylib           0x00007ff817433ae8 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long, unsigned long, std::__1::allocator<char> const&) + 174
16 llnode.dylib             0x00000001085614a7 llnode::v8::JSFunction::GetSource(llnode::Error&) + 975
17 llnode.dylib             0x000000010857bcb2 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > llnode::Printer::Stringify<llnode::v8::JSFunction, llnode::v8::JSFunction>(llnode::v8::JSFunction, llnode::Error&) + 1970
18 llnode.dylib             0x0000000108579140 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > llnode::Printer::Stringify<llnode::v8::HeapObject, llnode::v8::HeapObject>(llnode::v8::HeapObject, llnode::Error&) + 2464
19 llnode.dylib             0x00000001085785a9 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > llnode::Printer::Stringify<llnode::v8::Value, llnode::v8::Value>(llnode::v8::Value, llnode::Error&) + 375
20 llnode.dylib             0x00000001085561c6 llnode::PrintCmd::DoExecute(lldb::SBDebugger, char**, lldb::SBCommandReturnObject&) + 566
21 LLDB                     0x0000000117ae28fa CommandPluginInterfaceImplementation::DoExecute(lldb_private::Args&, lldb_private::CommandReturnObject&) + 282
22 LLDB                     0x0000000117cd57aa lldb_private::CommandObjectParsed::Execute(char const*, lldb_private::CommandReturnObject&) + 410
23 LLDB                     0x0000000117cca866 lldb_private::CommandInterpreter::HandleCommand(char const*, lldb_private::LazyBool, lldb_private::CommandReturnObject&) + 2278
24 LLDB                     0x0000000117ccf458 lldb_private::CommandInterpreter::IOHandlerInputComplete(lldb_private::IOHandler&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 920
25 LLDB                     0x0000000117bf6d3a lldb_private::IOHandlerEditline::Run() + 346
26 LLDB                     0x0000000117bd9fdf lldb_private::Debugger::RunIOHandlers() + 143
27 LLDB                     0x0000000117cd08ae lldb_private::CommandInterpreter::RunCommandInterpreter(lldb_private::CommandInterpreterRunOptions&) + 158
28 LLDB                     0x0000000117afa61c lldb::SBDebugger::RunCommandInterpreter(bool, bool) + 140
29 lldb                     0x0000000100685668 Driver::MainLoop() + 2600
30 lldb                     0x000000010068656b main + 2523
31 dyld                     0x000000010867c52e start + 462

Local environment (please complete the following information):

  • Version of llnode: 4.0.0
  • OS Info: Macbook pro (2015) - MacOs Monterey 12.5.1 (intel)
  • lldb Version: lldb-1400.0.30.3
  • Version of node.js: 16.17.0

Server where the core was dumped (please complete the following information): Same as above.

Additional context

tony-go avatar Sep 28 '22 13:09 tony-go