Status: New
Owner: ----

New issue 295 by polarjs: ARM port: Function debug info include breaks at  
stubs though debug break code is not generated for it
http://code.google.com/p/v8/issues/detail?id=295

On the ARM port, Debug::GenerateStubNoRegistersDebugBreak() has a comment
that says to "Generate nothing as CodeStub CallFunction is not used on
ARM."  However, I found that when I try to exercise debugger functionality
to step into a JS function, the following sequence of code will be executed
in v8:

Debug::FloodWithOneShot() calls
   BreakLocationIterator::SetOneShot() which calls
     BreakLocationIterator::SetDebugBreak() which calls
       Debug::FindDebugBreak().

I'm seeing that the first debug break point (operated on in
FloodWithOneShot()) in any function that I'm trying to step into is always
a stub i.e. code->kind() == Code::STUB.  This causes FindDebugBreak() to
return the code for
Builtins::builtin(Builtins::StubNoRegisters_DebugBreak).  However, this
builtin "code" was never created by
Debug::GenerateStubNoRegistersDebugBreak() because it is supposedly not  
needed.

As a result, when exercising the debugger "step into" functionality, v8
crashes with a fault (usually an illegal instruction fault) when it steps
into the non-existant debug break code for the stub.

It looks like on the ARM port, the debug info that FloodWithOneShot()
should not include stubs since Debug::GenerateStubNoRegistersDebugBreak()
is not expecting to generate debug break code fragments for it.

I tested a hack where I changed Debug::FloodWithOneShot() to simply skip
the first debug break element and start iterating from the second.  With
this hack, v8 no longer faults.

Please advise as to what the proper fix for this should be.  Thanks.

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

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

Reply via email to