OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 1803 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1814 // care of the case where the last break point is removed from the function | 1814 // care of the case where the last break point is removed from the function |
1815 // and therefore no "original code" is available. | 1815 // and therefore no "original code" is available. |
1816 thread_local_.after_break_target_ = Assembler::target_address_at(addr); | 1816 thread_local_.after_break_target_ = Assembler::target_address_at(addr); |
1817 } | 1817 } |
1818 } | 1818 } |
1819 | 1819 |
1820 | 1820 |
1821 bool Debug::IsBreakAtReturn(JavaScriptFrame* frame) { | 1821 bool Debug::IsBreakAtReturn(JavaScriptFrame* frame) { |
1822 HandleScope scope(isolate_); | 1822 HandleScope scope(isolate_); |
1823 | 1823 |
| 1824 // If there are no break points this cannot be break at return, as |
| 1825 // the debugger statement and stack guard bebug break cannot be at |
| 1826 // return. |
| 1827 if (!has_break_points_) { |
| 1828 return false; |
| 1829 } |
| 1830 |
1824 // Get the executing function in which the debug break occurred. | 1831 // Get the executing function in which the debug break occurred. |
1825 Handle<SharedFunctionInfo> shared = | 1832 Handle<SharedFunctionInfo> shared = |
1826 Handle<SharedFunctionInfo>(JSFunction::cast(frame->function())->shared()); | 1833 Handle<SharedFunctionInfo>(JSFunction::cast(frame->function())->shared()); |
1827 if (!EnsureDebugInfo(shared)) { | 1834 if (!EnsureDebugInfo(shared)) { |
1828 // Return if we failed to retrieve the debug info. | 1835 // Return if we failed to retrieve the debug info. |
1829 return false; | 1836 return false; |
1830 } | 1837 } |
1831 Handle<DebugInfo> debug_info = GetDebugInfo(shared); | 1838 Handle<DebugInfo> debug_info = GetDebugInfo(shared); |
1832 Handle<Code> code(debug_info->code()); | 1839 Handle<Code> code(debug_info->code()); |
1833 #ifdef DEBUG | 1840 #ifdef DEBUG |
(...skipping 1288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3122 { | 3129 { |
3123 Locker locker; | 3130 Locker locker; |
3124 Isolate::Current()->debugger()->CallMessageDispatchHandler(); | 3131 Isolate::Current()->debugger()->CallMessageDispatchHandler(); |
3125 } | 3132 } |
3126 } | 3133 } |
3127 } | 3134 } |
3128 | 3135 |
3129 #endif // ENABLE_DEBUGGER_SUPPORT | 3136 #endif // ENABLE_DEBUGGER_SUPPORT |
3130 | 3137 |
3131 } } // namespace v8::internal | 3138 } } // namespace v8::internal |
OLD | NEW |