Fix reporting of impossible nested calls of DOM functions.
authormikhail.naganov@gmail.com <mikhail.naganov@gmail.com@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 27 Oct 2010 17:03:01 +0000 (17:03 +0000)
committermikhail.naganov@gmail.com <mikhail.naganov@gmail.com@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 27 Oct 2010 17:03:01 +0000 (17:03 +0000)
It turns out that having PC pointing _exactly_ at callback entry
point is quite probable.

BUG=crbug/60753

Review URL: http://codereview.chromium.org/4169005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/log.cc

index 2cc2b8f..d12aafb 100644 (file)
@@ -164,7 +164,10 @@ void StackTracer::Trace(TickSample* sample) {
 
   int i = 0;
   const Address callback = VMState::external_callback();
-  if (callback != NULL) {
+  // Surprisingly, PC can point _exactly_ to callback start, with good
+  // probability, and this will result in reporting fake nested
+  // callback call.
+  if (callback != NULL && callback != sample->pc) {
     sample->stack[i++] = callback;
   }