Reviewers: ulan,

Description:
Actually put debug information on stack when aborting.

[email protected]
BUG=
TEST=


Please review this at https://chromiumcodereview.appspot.com/10627015/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/debug.h
  M src/debug.cc


Index: src/debug.cc
diff --git a/src/debug.cc b/src/debug.cc
index 67d47c04e06373051b508f2e41c5051e5e2fe088..668e6a186344d402ec2a53d74fadfb0bad2c01f0 100644
--- a/src/debug.cc
+++ b/src/debug.cc
@@ -896,8 +896,18 @@ void Debug::PutValuesOnStackAndDie(int start,
                                    Address c_entry_fp,
                                    Address last_fp,
                                    Address larger_fp,
+                                   Address last_in_fp,
+                                   Address last_out_fp,
                                    int count,
                                    int end) {
+  OS::PrintError("start:       %d\n", start);
+  OS::PrintError("c_entry_fp:  %p\n", static_cast<void*>(c_entry_fp));
+  OS::PrintError("last_fp:     %p\n", static_cast<void*>(last_fp));
+  OS::PrintError("larger_fp:   %p\n", static_cast<void*>(larger_fp));
+  OS::PrintError("last_in_fp:  %p\n", static_cast<void*>(last_in_fp));
+  OS::PrintError("last_out_fp: %p\n", static_cast<void*>(last_out_fp));
+  OS::PrintError("count:       %d\n", count);
+  OS::PrintError("end:         %d\n", end);
   OS::Abort();
 }

@@ -1010,6 +1020,8 @@ Object* Debug::Break(Arguments args) {
                                frame->fp(),
                                thread_local_.last_fp_,
                                NULL,
+                               thread_local_.step_into_fp_,
+                               thread_local_.step_out_fp_,
                                count,
                                0xFEEEEEEE);
       } else if (it.frame()->fp() != thread_local_.last_fp_) {
@@ -1018,6 +1030,8 @@ Object* Debug::Break(Arguments args) {
                                frame->fp(),
                                thread_local_.last_fp_,
                                it.frame()->fp(),
+                               thread_local_.step_into_fp_,
+                               thread_local_.step_out_fp_,
                                count,
                                0xFEEEEEEE);
       }
Index: src/debug.h
diff --git a/src/debug.h b/src/debug.h
index c7c4b55489828b930ac0c768345c4114bc5e0d27..607dab7b838c189e70cf97d57def4a5f6007f401 100644
--- a/src/debug.h
+++ b/src/debug.h
@@ -236,6 +236,8 @@ class Debug {
                                         Address c_entry_fp,
                                         Address last_fp,
                                         Address larger_fp,
+                                        Address last_in_fp,
+                                        Address last_out_fp,
                                         int count,
                                         int end));
   Object* Break(Arguments args);


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to