OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/frames.h" | 5 #include "src/frames.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 | 8 |
9 #include "src/ast.h" | 9 #include "src/ast.h" |
10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 AdvanceOneFrame(); | 327 AdvanceOneFrame(); |
328 if (done()) return; | 328 if (done()) return; |
329 if (frame_->is_java_script()) return; | 329 if (frame_->is_java_script()) return; |
330 if (frame_->is_exit() && external_callback_scope_) { | 330 if (frame_->is_exit() && external_callback_scope_) { |
331 // Some of the EXIT frames may have ExternalCallbackScope allocated on | 331 // Some of the EXIT frames may have ExternalCallbackScope allocated on |
332 // top of them. In that case the scope corresponds to the first EXIT | 332 // top of them. In that case the scope corresponds to the first EXIT |
333 // frame beneath it. There may be other EXIT frames on top of the | 333 // frame beneath it. There may be other EXIT frames on top of the |
334 // ExternalCallbackScope, just skip them as we cannot collect any useful | 334 // ExternalCallbackScope, just skip them as we cannot collect any useful |
335 // information about them. | 335 // information about them. |
336 if (external_callback_scope_->scope_address() < frame_->fp()) { | 336 if (external_callback_scope_->scope_address() < frame_->fp()) { |
337 Address* callback_address = | 337 frame_->state_.pc_address = |
338 external_callback_scope_->callback_address(); | 338 external_callback_scope_->callback_entrypoint_address(); |
339 if (*callback_address != NULL) { | |
340 frame_->state_.pc_address = callback_address; | |
341 } | |
342 external_callback_scope_ = external_callback_scope_->previous(); | 339 external_callback_scope_ = external_callback_scope_->previous(); |
343 DCHECK(external_callback_scope_ == NULL || | 340 DCHECK(external_callback_scope_ == NULL || |
344 external_callback_scope_->scope_address() > frame_->fp()); | 341 external_callback_scope_->scope_address() > frame_->fp()); |
345 return; | 342 return; |
346 } | 343 } |
347 } | 344 } |
348 } | 345 } |
349 } | 346 } |
350 | 347 |
351 | 348 |
(...skipping 1241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1593 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) { | 1590 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) { |
1594 StackFrame* frame = AllocateFrameCopy(it.frame(), zone); | 1591 StackFrame* frame = AllocateFrameCopy(it.frame(), zone); |
1595 list.Add(frame, zone); | 1592 list.Add(frame, zone); |
1596 } | 1593 } |
1597 return list.ToVector(); | 1594 return list.ToVector(); |
1598 } | 1595 } |
1599 | 1596 |
1600 | 1597 |
1601 } // namespace internal | 1598 } // namespace internal |
1602 } // namespace v8 | 1599 } // namespace v8 |
OLD | NEW |