The call to a() is compiled as a call to a "call" inline cache stub.  The
inline cache miss hits CallIC::LoadFunction.
In gdb you can set a conditional breakpoint there that will skip all the
noise of bootstrapping V8 via:

    break v8::internal::CallIC::LoadFunction if
!v8::internal::Bootstrapper::IsActive()


On Thu, Jun 4, 2009 at 9:52 AM, Daniel Dreiberg <daniel.dreiber...@gmail.com
> wrote:

> Thank you.
> Can you please tell me where should i setup a breakpoint if i want to learn
> how v8 looks up a javascript function before it executes?
>
> e.g. in my case, i type "a()" in test Shell after i type 'function a() {
> return 1 + 1 ; }' to define the function.
>
> 2009/6/3 Søren Gjesse <sgje...@chromium.org>
>
> If you are using XCode, take a look at the following thread on
>> chromium-dev:
>>
>> http://groups.google.com/group/chromium-dev/browse_thread/thread/20bc9002733aebe5/bb90c80f9bc86911?lnk=gst&q=Where+is+the+integration+point+betwee+chromium+and+V8#bb90c80f9bc86911
>> .
>>
>> Regards,
>> Søren
>>
>> On Sun, May 31, 2009 at 02:38, daniel <daniel.dreiber...@gmail.com>wrote:
>>
>>>
>>> Hi,
>>>
>>> I am compile and run TestShell of V8:
>>>
>>> And i setup breakponts in following functions in compiler.cc:
>>> MakeFunction()
>>> MakeCode()
>>> Compile()
>>>
>>> And then I start the TestShell and enter and execute a JavaScript
>>> function:
>>> run
>>> [Switching to process 640 local thread 0x2d03]
>>> Running…
>>> V8 version 1.2.6
>>> > function a() { return 1 + 1 ; }
>>> > a()
>>> 2
>>> >
>>>
>>> But none of my breakpoints got stopped. Can you please tell me why?
>>> I just want to see how v8 :
>>> * process a JavaScript function declaration
>>> * lookup and execute a JavaScript function
>>>
>>> Thank you
>>>
>>>
>>
>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to