lldb-v8
lldb-v8 copied to clipboard
AttributeError exception raised on Linux Fedora 20 (LLDB 3.4.2)
Hi,
I was experimenting today with lldb-v8 and a core produced by node 0.10.36
. The following exception was raised when attempting to run `jsstack':
(lldb) jsstack
unknown type: False
Traceback (most recent call last):
File "/data/src/misc/lldb-v8/v8.py", line 781, in jsstack
v8cfg.jsstack(result)
File "/data/src/misc/lldb-v8/v8.py", line 631, in jsstack
self.jsstack_thread(self.process.GetThreadAtIndex(i), result)
File "/data/src/misc/lldb-v8/v8.py", line 604, in jsstack_thread
f = self.jsstack_frame(result, thread, frame.fp)
File "/data/src/misc/lldb-v8/v8.py", line 556, in jsstack_frame
obj = V8Object(self, pointer)
File "/data/src/misc/lldb-v8/v8.py", line 98, in __init__
self._get_type()
File "/data/src/misc/lldb-v8/v8.py", line 109, in _get_type
raise AttributeError
AttributeError
Here is the stack viewed from lldb:
(lldb) bt
* thread #1: tid = 0, 0x000000352d435877 libc.so.6`__GI_raise + 55, name = 'node', stop reason = signal SIGABRT
* frame #0: 0x000000352d435877 libc.so.6`__GI_raise + 55
frame #1: 0x000000352d436f68 libc.so.6`__GI_abort + 328
frame #2: 0x0000000000b191e1 node`node::Abort(args=0x00007fff5e4e2588) + 17 at node.cc:1364
frame #3: 0x00000000006f5a30 node`v8::internal::MaybeObject* v8::internal::HandleApiCallHelper<false>(args=BuiltinArguments<1> at 0x00007fff5e4e2678, isolate=0x00000000015f1070)::BuiltinArguments<(v8::internal::BuiltinExtr6
frame #4: 0x00000000006f5603 node`v8::internal::Builtin_Impl_HandleApiCall(args=v8::internal::<anonymous namespace>::HandleApiCallArgumentsType at 0x00007fff5e4e26c0, isolate=0x00000000015f1070)::BuiltinArguments<(v8::inte4
frame #5: 0x00000000006ef0ef node`v8::internal::Builtin_HandleApiCall(args=v8::internal::<anonymous namespace>::HandleApiCallArgumentsType at 0x00007fff5e4e2700, isolate=0x00000000015f1070)::BuiltinArguments<(v8::internal:3
frame #6: 0x00000be49570618e
frame #7: 0x00000be495766cdb
frame #8: 0x00000be495766bd2
generated by the following very trivial script:
var foo = function () { console.trace(); process.abort(); }
var bar = function () { foo(); }
var baz = function () { bar(); }
baz();
it fails because the object computed is not a heapobject