tjfontaine / lldb-v8

v8 utility scripts for lldb
73 stars 8 forks source link

AttributeError exception raised on Linux Fedora 20 (LLDB 3.4.2) #2

Open lacombar opened 9 years ago

lacombar commented 9 years ago

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();
lacombar commented 9 years ago

it fails because the object computed is not a heapobject