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

Side by Side Diff: runtime/vm/thread.h

Issue 2603383004: Sane asynchronous debugging and stack traces (Closed)
Patch Set: rebase Created 3 years, 11 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
« no previous file with comments | « runtime/vm/symbols.h ('k') | runtime/vm/thread.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 (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef RUNTIME_VM_THREAD_H_ 5 #ifndef RUNTIME_VM_THREAD_H_
6 #define RUNTIME_VM_THREAD_H_ 6 #define RUNTIME_VM_THREAD_H_
7 7
8 #include "include/dart_api.h" 8 #include "include/dart_api.h"
9 #include "platform/assert.h" 9 #include "platform/assert.h"
10 #include "vm/atomic.h" 10 #include "vm/atomic.h"
(...skipping 26 matching lines...) Expand all
37 class LongJumpScope; 37 class LongJumpScope;
38 class Object; 38 class Object;
39 class OSThread; 39 class OSThread;
40 class JSONObject; 40 class JSONObject;
41 class PcDescriptors; 41 class PcDescriptors;
42 class RawBool; 42 class RawBool;
43 class RawObject; 43 class RawObject;
44 class RawCode; 44 class RawCode;
45 class RawError; 45 class RawError;
46 class RawGrowableObjectArray; 46 class RawGrowableObjectArray;
47 class RawStackTrace;
47 class RawString; 48 class RawString;
48 class RuntimeEntry; 49 class RuntimeEntry;
49 class Smi; 50 class Smi;
50 class StackResource; 51 class StackResource;
52 class StackTrace;
51 class String; 53 class String;
52 class TimelineStream; 54 class TimelineStream;
53 class TypeArguments; 55 class TypeArguments;
54 class TypeParameter; 56 class TypeParameter;
55 class Zone; 57 class Zone;
56 58
57 #define REUSABLE_HANDLE_LIST(V) \ 59 #define REUSABLE_HANDLE_LIST(V) \
58 V(AbstractType) \ 60 V(AbstractType) \
59 V(Array) \ 61 V(Array) \
60 V(Class) \ 62 V(Class) \
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 } 500 }
499 501
500 uword resume_pc() const { return resume_pc_; } 502 uword resume_pc() const { return resume_pc_; }
501 void set_resume_pc(uword value) { resume_pc_ = value; } 503 void set_resume_pc(uword value) { resume_pc_ = value; }
502 static uword resume_pc_offset() { return OFFSET_OF(Thread, resume_pc_); } 504 static uword resume_pc_offset() { return OFFSET_OF(Thread, resume_pc_); }
503 505
504 RawError* sticky_error() const; 506 RawError* sticky_error() const;
505 void set_sticky_error(const Error& value); 507 void set_sticky_error(const Error& value);
506 void clear_sticky_error(); 508 void clear_sticky_error();
507 509
510 RawStackTrace* async_stack_trace() const;
511 void set_async_stack_trace(const StackTrace& stack_trace);
512 void clear_async_stack_trace();
513 static intptr_t async_stack_trace_offset() {
514 return OFFSET_OF(Thread, async_stack_trace_);
515 }
516
508 CompilerStats* compiler_stats() { return compiler_stats_; } 517 CompilerStats* compiler_stats() { return compiler_stats_; }
509 518
510 #if defined(DEBUG) 519 #if defined(DEBUG)
511 #define REUSABLE_HANDLE_SCOPE_ACCESSORS(object) \ 520 #define REUSABLE_HANDLE_SCOPE_ACCESSORS(object) \
512 void set_reusable_##object##_handle_scope_active(bool value) { \ 521 void set_reusable_##object##_handle_scope_active(bool value) { \
513 reusable_##object##_handle_scope_active_ = value; \ 522 reusable_##object##_handle_scope_active_ = value; \
514 } \ 523 } \
515 bool reusable_##object##_handle_scope_active() const { \ 524 bool reusable_##object##_handle_scope_active() const { \
516 return reusable_##object##_handle_scope_active_; \ 525 return reusable_##object##_handle_scope_active_; \
517 } 526 }
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
720 CHA* cha_; 729 CHA* cha_;
721 intptr_t deopt_id_; // Compilation specific counter. 730 intptr_t deopt_id_; // Compilation specific counter.
722 RawGrowableObjectArray* pending_functions_; 731 RawGrowableObjectArray* pending_functions_;
723 732
724 // JumpToExceptionHandler state: 733 // JumpToExceptionHandler state:
725 RawObject* active_exception_; 734 RawObject* active_exception_;
726 RawObject* active_stacktrace_; 735 RawObject* active_stacktrace_;
727 uword resume_pc_; 736 uword resume_pc_;
728 737
729 RawError* sticky_error_; 738 RawError* sticky_error_;
739 RawStackTrace* async_stack_trace_;
730 740
731 CompilerStats* compiler_stats_; 741 CompilerStats* compiler_stats_;
732 742
733 // Reusable handles support. 743 // Reusable handles support.
734 #define REUSABLE_HANDLE_FIELDS(object) object* object##_handle_; 744 #define REUSABLE_HANDLE_FIELDS(object) object* object##_handle_;
735 REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_FIELDS) 745 REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_FIELDS)
736 #undef REUSABLE_HANDLE_FIELDS 746 #undef REUSABLE_HANDLE_FIELDS
737 747
738 #if defined(DEBUG) 748 #if defined(DEBUG)
739 #define REUSABLE_HANDLE_SCOPE_VARIABLE(object) \ 749 #define REUSABLE_HANDLE_SCOPE_VARIABLE(object) \
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
797 // Disable thread interrupts. 807 // Disable thread interrupts.
798 class DisableThreadInterruptsScope : public StackResource { 808 class DisableThreadInterruptsScope : public StackResource {
799 public: 809 public:
800 explicit DisableThreadInterruptsScope(Thread* thread); 810 explicit DisableThreadInterruptsScope(Thread* thread);
801 ~DisableThreadInterruptsScope(); 811 ~DisableThreadInterruptsScope();
802 }; 812 };
803 813
804 } // namespace dart 814 } // namespace dart
805 815
806 #endif // RUNTIME_VM_THREAD_H_ 816 #endif // RUNTIME_VM_THREAD_H_
OLDNEW
« no previous file with comments | « runtime/vm/symbols.h ('k') | runtime/vm/thread.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698