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

Unified Diff: src/x64/full-codegen-x64.cc

Issue 6371011: Ensures that GDB prints stacktraces correctly for x64 builds when debugging t... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 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 side-by-side diff with in-line comments
Download patch
Index: src/x64/full-codegen-x64.cc
===================================================================
--- src/x64/full-codegen-x64.cc (revision 6445)
+++ src/x64/full-codegen-x64.cc (working copy)
@@ -69,7 +69,9 @@
}
#endif
__ push(rbp); // Caller's frame pointer.
+ SET_UNWIND_INFO(UNWIND_STATE_AFTER_RBP_PUSH, masm_->pc_offset());
Vyacheslav Egorov (Chromium) 2011/01/25 12:50:11 The idea is to keep GDBJIT as isolated as possible
__ movq(rbp, rsp);
+ SET_UNWIND_INFO(UNWIND_STATE_AFTER_RBP_SET, masm_->pc_offset());
__ push(rsi); // Callee's context.
__ push(rdi); // Callee's JS Function.
@@ -245,7 +247,9 @@
// patch with the code required by the debugger.
__ movq(rsp, rbp);
__ pop(rbp);
+ SET_UNWIND_INFO(UNWIND_STATE_AFTER_RBP_POP, masm_->pc_offset());
__ ret((scope()->num_parameters() + 1) * kPointerSize);
+ SET_UNWIND_INFO(UNWIND_STATE_AFTER_RETURN, masm_->pc_offset());
#ifdef ENABLE_DEBUGGER_SUPPORT
// Add padding that will be overwritten by a debugger breakpoint. We
// have just generated "movq rsp, rbp; pop rbp; ret k" with length 7

Powered by Google App Engine
This is Rietveld 408576698