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

Side by Side Diff: src/heap/heap.h

Issue 1149623010: Print and save JS stacktrace on OOM crash. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Address comments Created 5 years, 6 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 | « src/api.cc ('k') | src/heap/heap.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_HEAP_HEAP_H_ 5 #ifndef V8_HEAP_HEAP_H_
6 #define V8_HEAP_HEAP_H_ 6 #define V8_HEAP_HEAP_H_
7 7
8 #include <cmath> 8 #include <cmath>
9 #include <map> 9 #include <map>
10 10
(...skipping 1139 matching lines...) Expand 10 before | Expand all | Expand 10 after
1150 // Sizes are in MB. 1150 // Sizes are in MB.
1151 static const int kMaxExecutableSizeLowMemoryDevice = 96 * kPointerMultiplier; 1151 static const int kMaxExecutableSizeLowMemoryDevice = 96 * kPointerMultiplier;
1152 static const int kMaxExecutableSizeMediumMemoryDevice = 1152 static const int kMaxExecutableSizeMediumMemoryDevice =
1153 192 * kPointerMultiplier; 1153 192 * kPointerMultiplier;
1154 static const int kMaxExecutableSizeHighMemoryDevice = 1154 static const int kMaxExecutableSizeHighMemoryDevice =
1155 256 * kPointerMultiplier; 1155 256 * kPointerMultiplier;
1156 static const int kMaxExecutableSizeHugeMemoryDevice = 1156 static const int kMaxExecutableSizeHugeMemoryDevice =
1157 256 * kPointerMultiplier; 1157 256 * kPointerMultiplier;
1158 1158
1159 static const int kTraceRingBufferSize = 512; 1159 static const int kTraceRingBufferSize = 512;
1160 static const int kStacktraceBufferSize = 512;
1160 1161
1161 // Calculates the allocation limit based on a given growing factor and a 1162 // Calculates the allocation limit based on a given growing factor and a
1162 // given old generation size. 1163 // given old generation size.
1163 intptr_t CalculateOldGenerationAllocationLimit(double factor, 1164 intptr_t CalculateOldGenerationAllocationLimit(double factor,
1164 intptr_t old_gen_size); 1165 intptr_t old_gen_size);
1165 1166
1166 // Sets the allocation limit to trigger the next full garbage collection. 1167 // Sets the allocation limit to trigger the next full garbage collection.
1167 void SetOldGenerationAllocationLimit(intptr_t old_gen_size, 1168 void SetOldGenerationAllocationLimit(intptr_t old_gen_size,
1168 size_t current_allocation_throughput); 1169 size_t current_allocation_throughput);
1169 1170
(...skipping 1156 matching lines...) Expand 10 before | Expand all | Expand 10 after
2326 int* weak_global_handle_count; // 11 2327 int* weak_global_handle_count; // 11
2327 int* pending_global_handle_count; // 12 2328 int* pending_global_handle_count; // 12
2328 int* near_death_global_handle_count; // 13 2329 int* near_death_global_handle_count; // 13
2329 int* free_global_handle_count; // 14 2330 int* free_global_handle_count; // 14
2330 intptr_t* memory_allocator_size; // 15 2331 intptr_t* memory_allocator_size; // 15
2331 intptr_t* memory_allocator_capacity; // 16 2332 intptr_t* memory_allocator_capacity; // 16
2332 int* objects_per_type; // 17 2333 int* objects_per_type; // 17
2333 int* size_per_type; // 18 2334 int* size_per_type; // 18
2334 int* os_error; // 19 2335 int* os_error; // 19
2335 char* last_few_messages; // 20 2336 char* last_few_messages; // 20
2336 int* end_marker; // 21 2337 char* js_stacktrace; // 21
2338 int* end_marker; // 22
2337 }; 2339 };
2338 2340
2339 2341
2340 class AlwaysAllocateScope { 2342 class AlwaysAllocateScope {
2341 public: 2343 public:
2342 explicit inline AlwaysAllocateScope(Isolate* isolate); 2344 explicit inline AlwaysAllocateScope(Isolate* isolate);
2343 inline ~AlwaysAllocateScope(); 2345 inline ~AlwaysAllocateScope();
2344 2346
2345 private: 2347 private:
2346 // Implicitly disable artificial allocation failures. 2348 // Implicitly disable artificial allocation failures.
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
2746 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. 2748 DisallowHeapAllocation no_allocation; // i.e. no gc allowed.
2747 2749
2748 private: 2750 private:
2749 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); 2751 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer);
2750 }; 2752 };
2751 #endif // DEBUG 2753 #endif // DEBUG
2752 } 2754 }
2753 } // namespace v8::internal 2755 } // namespace v8::internal
2754 2756
2755 #endif // V8_HEAP_HEAP_H_ 2757 #endif // V8_HEAP_HEAP_H_
OLDNEW
« no previous file with comments | « src/api.cc ('k') | src/heap/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698