Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(264)

Side by Side Diff: src/debug.h

Issue 296043002: Remove special debug ExternalReferences. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/assembler.cc ('k') | src/ia32/debug-ia32.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #ifndef V8_DEBUG_H_ 5 #ifndef V8_DEBUG_H_
6 #define V8_DEBUG_H_ 6 #define V8_DEBUG_H_
7 7
8 #include "allocation.h" 8 #include "allocation.h"
9 #include "arguments.h" 9 #include "arguments.h"
10 #include "assembler.h" 10 #include "assembler.h"
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 bool break_on_uncaught_exception() { 335 bool break_on_uncaught_exception() {
336 return break_on_uncaught_exception_; 336 return break_on_uncaught_exception_;
337 } 337 }
338 338
339 enum AddressId { 339 enum AddressId {
340 k_after_break_target_address, 340 k_after_break_target_address,
341 k_restarter_frame_function_pointer 341 k_restarter_frame_function_pointer
342 }; 342 };
343 343
344 // Support for setting the address to jump to when returning from break point. 344 // Support for setting the address to jump to when returning from break point.
345 Address* after_break_target_address() { 345 Address after_break_target_address() {
346 return reinterpret_cast<Address*>(&thread_local_.after_break_target_); 346 return reinterpret_cast<Address>(&thread_local_.after_break_target_);
347 } 347 }
348 Address* restarter_frame_function_pointer_address() { 348
349 Address restarter_frame_function_pointer_address() {
349 Object*** address = &thread_local_.restarter_frame_function_pointer_; 350 Object*** address = &thread_local_.restarter_frame_function_pointer_;
350 return reinterpret_cast<Address*>(address); 351 return reinterpret_cast<Address>(address);
351 } 352 }
352 353
353 // Support for saving/restoring registers when handling debug break calls. 354 // Support for saving/restoring registers when handling debug break calls.
354 Object** register_address(int r) { 355 Object** register_address(int r) {
355 return &registers_[r]; 356 return &registers_[r];
356 } 357 }
357 358
358 static const int kEstimatedNofDebugInfoEntries = 16; 359 static const int kEstimatedNofDebugInfoEntries = 16;
359 static const int kEstimatedNofBreakPointsInFunction = 16; 360 static const int kEstimatedNofBreakPointsInFunction = 16;
360 361
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after
911 isolate_->debug()->set_disable_break(prev_disable_break_); 912 isolate_->debug()->set_disable_break(prev_disable_break_);
912 } 913 }
913 914
914 private: 915 private:
915 Isolate* isolate_; 916 Isolate* isolate_;
916 // The previous state of the disable break used to restore the value when this 917 // The previous state of the disable break used to restore the value when this
917 // object is destructed. 918 // object is destructed.
918 bool prev_disable_break_; 919 bool prev_disable_break_;
919 }; 920 };
920 921
921
922 // Debug_Address encapsulates the Address pointers used in generating debug
923 // code.
924 class Debug_Address {
925 public:
926 explicit Debug_Address(Debug::AddressId id) : id_(id) { }
927
928 static Debug_Address AfterBreakTarget() {
929 return Debug_Address(Debug::k_after_break_target_address);
930 }
931
932 static Debug_Address RestarterFrameFunctionPointer() {
933 return Debug_Address(Debug::k_restarter_frame_function_pointer);
934 }
935
936 Address address(Isolate* isolate) const {
937 Debug* debug = isolate->debug();
938 switch (id_) {
939 case Debug::k_after_break_target_address:
940 return reinterpret_cast<Address>(debug->after_break_target_address());
941 case Debug::k_restarter_frame_function_pointer:
942 return reinterpret_cast<Address>(
943 debug->restarter_frame_function_pointer_address());
944 default:
945 UNREACHABLE();
946 return NULL;
947 }
948 }
949
950 private:
951 Debug::AddressId id_;
952 };
953
954 } } // namespace v8::internal 922 } } // namespace v8::internal
955 923
956 #endif // V8_DEBUG_H_ 924 #endif // V8_DEBUG_H_
OLDNEW
« no previous file with comments | « src/assembler.cc ('k') | src/ia32/debug-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698