Trace inline cache miss

50 views
Skip to first unread message

이원준

unread,
Mar 13, 2015, 3:53:30 PM3/13/15
to v8-u...@googlegroups.com
 hello ~ :)

i want to find function that call inline cache miss ( at most first )

so, i find inline cache miss function
RUNTIME_FUNCTION(StoreIC_Miss) {
 
TimerEventScope<TimerEventIcMiss> timer(isolate);

 
HandleScope scope(isolate);
  DCHECK
(args.length() == 3);
 
StoreIC ic(IC::NO_EXTRA_FRAME, isolate);
 
Handle<Object> receiver = args.at<Object>(0);
 
Handle<Name> key = args.at<Name>(1);
  ic
.UpdateState(receiver, key);
 
Handle<Object> result;
  ASSIGN_RETURN_FAILURE_ON_EXCEPTION
(
      isolate
, result, ic.Store(receiver, key, args.at<Object>(2)));
 
return *result;
}

And i am debugging above mentioned function in GDB and look stack ( backtrace )

However, stack is in ??()

#0  v8::internal::StoreIC::Store (this=0x7fffffffc4d8, object=..., name=..., value=...,
    store_mode
=v8::internal::Object::CERTAINLY_NOT_STORE_FROM_KEYED) at ../src/ic/ic.cc:1583
#1  0x0000000000c9e95b in v8::internal::__RT_impl_StoreIC_Miss (args=..., isolate=0x2133910) at ../src/ic/ic.cc:2504
#2  0x0000000000c9e792 in v8::internal::StoreIC_Miss (args_length=3, args_object=0x7fffffffc620, isolate=0x2133910)
    at
../src/ic/ic.cc:2493
#3  0x0000118e1bd060bb in ?? ()
#4  0x0000118e1bd06001 in ?? ()
...
#52 0x0000118e1bd836fb in ?? ()

i want to find invoke or call part that call #2 StoreIC_Miss function.

help me...

Ben Noordhuis

unread,
Mar 14, 2015, 6:57:46 AM3/14/15
to v8-u...@googlegroups.com
If you build V8 with gdbjit=on and if your gdb is new enough, you
should see JS function names in the stack trace.

이원준

unread,
Mar 14, 2015, 7:02:12 AM3/14/15
to v8-u...@googlegroups.com
hm....i done 'gdbjit=on' option and on d8 --gdbjit flags.

but, IC miss call location is nothing. 
Reply all
Reply to author
Forward
0 new messages