| OLD | NEW |
| 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 27 | 27 |
| 28 #ifndef V8_FRAMES_H_ | 28 #ifndef V8_FRAMES_H_ |
| 29 #define V8_FRAMES_H_ | 29 #define V8_FRAMES_H_ |
| 30 | 30 |
| 31 #include "allocation.h" |
| 31 #include "handles.h" | 32 #include "handles.h" |
| 32 #include "safepoint-table.h" | 33 #include "safepoint-table.h" |
| 33 | 34 |
| 34 namespace v8 { | 35 namespace v8 { |
| 35 namespace internal { | 36 namespace internal { |
| 36 | 37 |
| 37 typedef uint32_t RegList; | 38 typedef uint32_t RegList; |
| 38 | 39 |
| 39 // Get the number of registers in a given register list. | 40 // Get the number of registers in a given register list. |
| 40 int NumRegs(RegList list); | 41 int NumRegs(RegList list); |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 // Opaque data type for identifying stack frames. Used extensively | 145 // Opaque data type for identifying stack frames. Used extensively |
| 145 // by the debugger. | 146 // by the debugger. |
| 146 // ID_MIN_VALUE and ID_MAX_VALUE are specified to ensure that enumeration type | 147 // ID_MIN_VALUE and ID_MAX_VALUE are specified to ensure that enumeration type |
| 147 // has correct value range (see Issue 830 for more details). | 148 // has correct value range (see Issue 830 for more details). |
| 148 enum Id { | 149 enum Id { |
| 149 ID_MIN_VALUE = kMinInt, | 150 ID_MIN_VALUE = kMinInt, |
| 150 ID_MAX_VALUE = kMaxInt, | 151 ID_MAX_VALUE = kMaxInt, |
| 151 NO_ID = 0 | 152 NO_ID = 0 |
| 152 }; | 153 }; |
| 153 | 154 |
| 155 // Used to mark the outermost JS entry frame. |
| 156 enum JsFrameMarker { |
| 157 INNER_JSENTRY_FRAME = 0, |
| 158 OUTERMOST_JSENTRY_FRAME = 1 |
| 159 }; |
| 160 |
| 154 struct State { | 161 struct State { |
| 155 State() : sp(NULL), fp(NULL), pc_address(NULL) { } | 162 State() : sp(NULL), fp(NULL), pc_address(NULL) { } |
| 156 Address sp; | 163 Address sp; |
| 157 Address fp; | 164 Address fp; |
| 158 Address* pc_address; | 165 Address* pc_address; |
| 159 }; | 166 }; |
| 160 | 167 |
| 161 // Copy constructor; it breaks the connection to host iterator | 168 // Copy constructor; it breaks the connection to host iterator |
| 162 // (as an iterator usually lives on stack). | 169 // (as an iterator usually lives on stack). |
| 163 StackFrame(const StackFrame& original) { | 170 StackFrame(const StackFrame& original) { |
| (...skipping 690 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 854 }; | 861 }; |
| 855 | 862 |
| 856 | 863 |
| 857 // Reads all frames on the current stack and copies them into the current | 864 // Reads all frames on the current stack and copies them into the current |
| 858 // zone memory. | 865 // zone memory. |
| 859 Vector<StackFrame*> CreateStackMap(); | 866 Vector<StackFrame*> CreateStackMap(); |
| 860 | 867 |
| 861 } } // namespace v8::internal | 868 } } // namespace v8::internal |
| 862 | 869 |
| 863 #endif // V8_FRAMES_H_ | 870 #endif // V8_FRAMES_H_ |
| OLD | NEW |