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 <memory> | 7 #include <memory> |
8 #include <sstream> | 8 #include <sstream> |
9 | 9 |
10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
432 // the VM with a signal at any arbitrary instruction, with essentially | 432 // the VM with a signal at any arbitrary instruction, with essentially |
433 // anything on the stack. So basically none of these checks are 100% | 433 // anything on the stack. So basically none of these checks are 100% |
434 // reliable. | 434 // reliable. |
435 MSAN_MEMORY_IS_INITIALIZED( | 435 MSAN_MEMORY_IS_INITIALIZED( |
436 state->fp + StandardFrameConstants::kFunctionOffset, kPointerSize); | 436 state->fp + StandardFrameConstants::kFunctionOffset, kPointerSize); |
437 Object* maybe_function = | 437 Object* maybe_function = |
438 Memory::Object_at(state->fp + StandardFrameConstants::kFunctionOffset); | 438 Memory::Object_at(state->fp + StandardFrameConstants::kFunctionOffset); |
439 if (!marker->IsSmi()) { | 439 if (!marker->IsSmi()) { |
440 if (maybe_function->IsSmi()) { | 440 if (maybe_function->IsSmi()) { |
441 return NONE; | 441 return NONE; |
442 } else if (FLAG_ignition && IsInterpreterFramePc(iterator->isolate(), | 442 } else if (IsInterpreterFramePc(iterator->isolate(), |
443 *(state->pc_address))) { | 443 *(state->pc_address))) { |
444 return INTERPRETED; | 444 return INTERPRETED; |
445 } else { | 445 } else { |
446 return JAVA_SCRIPT; | 446 return JAVA_SCRIPT; |
447 } | 447 } |
448 } | 448 } |
449 } else { | 449 } else { |
450 // Look up the code object to figure out the type of the stack frame. | 450 // Look up the code object to figure out the type of the stack frame. |
451 Code* code_obj = | 451 Code* code_obj = |
452 GetContainingCode(iterator->isolate(), *(state->pc_address)); | 452 GetContainingCode(iterator->isolate(), *(state->pc_address)); |
453 if (code_obj != nullptr) { | 453 if (code_obj != nullptr) { |
(...skipping 1509 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1963 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) { | 1963 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) { |
1964 StackFrame* frame = AllocateFrameCopy(it.frame(), zone); | 1964 StackFrame* frame = AllocateFrameCopy(it.frame(), zone); |
1965 list.Add(frame, zone); | 1965 list.Add(frame, zone); |
1966 } | 1966 } |
1967 return list.ToVector(); | 1967 return list.ToVector(); |
1968 } | 1968 } |
1969 | 1969 |
1970 | 1970 |
1971 } // namespace internal | 1971 } // namespace internal |
1972 } // namespace v8 | 1972 } // namespace v8 |
OLD | NEW |