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 -~----------~----~----~----~------~----~------~--~---