| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 3022 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3033 | 3033 |
| 3034 /** | 3034 /** |
| 3035 * A JIT code event is issued each time code is added, moved or removed. | 3035 * A JIT code event is issued each time code is added, moved or removed. |
| 3036 * | 3036 * |
| 3037 * \note removal events are not currently issued. | 3037 * \note removal events are not currently issued. |
| 3038 */ | 3038 */ |
| 3039 struct JitCodeEvent { | 3039 struct JitCodeEvent { |
| 3040 enum EventType { | 3040 enum EventType { |
| 3041 CODE_ADDED, | 3041 CODE_ADDED, |
| 3042 CODE_MOVED, | 3042 CODE_MOVED, |
| 3043 CODE_REMOVED | 3043 CODE_REMOVED, |
| 3044 CODE_ADD_LINE_POS_INFO, |
| 3045 CODE_START_LINE_INFO_RECORDING, |
| 3046 CODE_END_LINE_INFO_RECORDING |
| 3047 }; |
| 3048 // Definition of the code position type. The "POSITION" type means the place |
| 3049 // in the source code which are of interest when making stack traces to |
| 3050 // pin-point the source location of a stack frame as close as possible. |
| 3051 // The "STATEMENT_POSITION" means the place at the beginning of each |
| 3052 // statement, and is used to indicate possible break locations. |
| 3053 enum PositionType { |
| 3054 POSITION, |
| 3055 STATEMENT_POSITION |
| 3044 }; | 3056 }; |
| 3045 | 3057 |
| 3046 // Type of event. | 3058 // Type of event. |
| 3047 EventType type; | 3059 EventType type; |
| 3048 // Start of the instructions. | 3060 // Start of the instructions. |
| 3049 void* code_start; | 3061 void* code_start; |
| 3050 // Size of the instructions. | 3062 // Size of the instructions. |
| 3051 size_t code_len; | 3063 size_t code_len; |
| 3064 // Script info for CODE_ADDED event. |
| 3065 Handle<Script> script; |
| 3066 // User-defined data for *_LINE_INFO_* event. It's used to hold the source |
| 3067 // code line information which is returned from the |
| 3068 // CODE_START_LINE_INFO_RECORDING event. And it's passed to subsequent |
| 3069 // CODE_ADD_LINE_POS_INFO and CODE_END_LINE_INFO_RECORDING events. |
| 3070 void* user_data; |
| 3052 | 3071 |
| 3053 union { | 3072 union { |
| 3054 // Only valid for CODE_ADDED. | 3073 // Only valid for CODE_ADDED. |
| 3055 struct { | 3074 struct { |
| 3056 // Name of the object associated with the code, note that the string is | 3075 // Name of the object associated with the code, note that the string is |
| 3057 // not zero-terminated. | 3076 // not zero-terminated. |
| 3058 const char* str; | 3077 const char* str; |
| 3059 // Number of chars in str. | 3078 // Number of chars in str. |
| 3060 size_t len; | 3079 size_t len; |
| 3061 } name; | 3080 } name; |
| 3081 |
| 3082 // Only valid for CODE_ADD_LINE_POS_INFO |
| 3083 struct { |
| 3084 // PC offset |
| 3085 size_t offset; |
| 3086 // Code postion |
| 3087 size_t pos; |
| 3088 // The position type. |
| 3089 PositionType position_type; |
| 3090 } line_info; |
| 3091 |
| 3062 // New location of instructions. Only valid for CODE_MOVED. | 3092 // New location of instructions. Only valid for CODE_MOVED. |
| 3063 void* new_code_start; | 3093 void* new_code_start; |
| 3064 }; | 3094 }; |
| 3065 }; | 3095 }; |
| 3066 | 3096 |
| 3067 /** | 3097 /** |
| 3068 * Option flags passed to the SetJitCodeEventHandler function. | 3098 * Option flags passed to the SetJitCodeEventHandler function. |
| 3069 */ | 3099 */ |
| 3070 enum JitCodeEventOptions { | 3100 enum JitCodeEventOptions { |
| 3071 kJitCodeEventDefault = 0, | 3101 kJitCodeEventDefault = 0, |
| (...skipping 1852 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4924 | 4954 |
| 4925 | 4955 |
| 4926 } // namespace v8 | 4956 } // namespace v8 |
| 4927 | 4957 |
| 4928 | 4958 |
| 4929 #undef V8EXPORT | 4959 #undef V8EXPORT |
| 4930 #undef TYPE_CHECK | 4960 #undef TYPE_CHECK |
| 4931 | 4961 |
| 4932 | 4962 |
| 4933 #endif // V8_H_ | 4963 #endif // V8_H_ |
| OLD | NEW |