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

Side by Side Diff: src/isolate.cc

Issue 1138493004: Get more debugging data when crashing in Deoptimizer::GetOutputInfo. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 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
« no previous file with comments | « src/isolate.h ('k') | no next file » | 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 #include <stdlib.h> 5 #include <stdlib.h>
6 6
7 #include <fstream> // NOLINT(readability/streams) 7 #include <fstream> // NOLINT(readability/streams)
8 #include <sstream> 8 #include <sstream>
9 9
10 #include "src/v8.h" 10 #include "src/v8.h"
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 incomplete_message_->OutputToStdOut(); 273 incomplete_message_->OutputToStdOut();
274 return factory()->empty_string(); 274 return factory()->empty_string();
275 } else { 275 } else {
276 base::OS::Abort(); 276 base::OS::Abort();
277 // Unreachable 277 // Unreachable
278 return factory()->empty_string(); 278 return factory()->empty_string();
279 } 279 }
280 } 280 }
281 281
282 282
283 void Isolate::PushStackTraceAndDie(unsigned int magic, 283 void Isolate::PushStackTraceAndDie(unsigned int magic, void* ptr1, void* ptr2,
284 Object* object,
285 Map* map,
286 unsigned int magic2) { 284 unsigned int magic2) {
287 const int kMaxStackTraceSize = 32 * KB; 285 const int kMaxStackTraceSize = 32 * KB;
288 Handle<String> trace = StackTraceString(); 286 Handle<String> trace = StackTraceString();
289 uint8_t buffer[kMaxStackTraceSize]; 287 uint8_t buffer[kMaxStackTraceSize];
290 int length = Min(kMaxStackTraceSize - 1, trace->length()); 288 int length = Min(kMaxStackTraceSize - 1, trace->length());
291 String::WriteToFlat(*trace, buffer, 0, length); 289 String::WriteToFlat(*trace, buffer, 0, length);
292 buffer[length] = '\0'; 290 buffer[length] = '\0';
293 // TODO(dcarney): convert buffer to utf8? 291 // TODO(dcarney): convert buffer to utf8?
294 base::OS::PrintError("Stacktrace (%x-%x) %p %p: %s\n", magic, magic2, 292 base::OS::PrintError("Stacktrace (%x-%x) %p %p: %s\n", magic, magic2, ptr1,
295 static_cast<void*>(object), static_cast<void*>(map), 293 ptr2, reinterpret_cast<char*>(buffer));
296 reinterpret_cast<char*>(buffer));
297 base::OS::Abort(); 294 base::OS::Abort();
298 } 295 }
299 296
300 297
301 // Determines whether the given stack frame should be displayed in 298 // Determines whether the given stack frame should be displayed in
302 // a stack trace. The caller is the error constructor that asked 299 // a stack trace. The caller is the error constructor that asked
303 // for the stack trace to be collected. The first time a construct 300 // for the stack trace to be collected. The first time a construct
304 // call to this function is encountered it is skipped. The seen_caller 301 // call to this function is encountered it is skipped. The seen_caller
305 // in/out parameter is used to remember if the caller has been seen 302 // in/out parameter is used to remember if the caller has been seen
306 // yet. 303 // yet.
(...skipping 2474 matching lines...) Expand 10 before | Expand all | Expand 10 after
2781 if (prev_ && prev_->Intercept(flag)) return true; 2778 if (prev_ && prev_->Intercept(flag)) return true;
2782 // Then check whether this scope intercepts. 2779 // Then check whether this scope intercepts.
2783 if ((flag & intercept_mask_)) { 2780 if ((flag & intercept_mask_)) {
2784 intercepted_flags_ |= flag; 2781 intercepted_flags_ |= flag;
2785 return true; 2782 return true;
2786 } 2783 }
2787 return false; 2784 return false;
2788 } 2785 }
2789 2786
2790 } } // namespace v8::internal 2787 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/isolate.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698