The sampling profiler's stack walker methods should be marked with SUPPRESS_ASAN
authorsbarati@apple.com <sbarati@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 11 Feb 2016 21:04:43 +0000 (21:04 +0000)
committersbarati@apple.com <sbarati@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 11 Feb 2016 21:04:43 +0000 (21:04 +0000)
https://bugs.webkit.org/show_bug.cgi?id=154123

Reviewed by Mark Lam.

The entire premise of the sampling profiler is to load from
another thread's memory. We should SUPPRESS_ASAN on the
methods that do this.

* runtime/SamplingProfiler.cpp:
(JSC::FrameWalker::FrameWalker):
(JSC::FrameWalker::walk):
(JSC::FrameWalker::advanceToParentFrame):
(JSC::FrameWalker::isAtTop):
(JSC::FrameWalker::resetAtMachineFrame):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@196432 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/runtime/SamplingProfiler.cpp

index a0e6e72..f0e8009 100644 (file)
@@ -1,3 +1,21 @@
+2016-02-11  Saam barati  <sbarati@apple.com>
+
+        The sampling profiler's stack walker methods should be marked with SUPPRESS_ASAN
+        https://bugs.webkit.org/show_bug.cgi?id=154123
+
+        Reviewed by Mark Lam.
+
+        The entire premise of the sampling profiler is to load from
+        another thread's memory. We should SUPPRESS_ASAN on the
+        methods that do this.
+
+        * runtime/SamplingProfiler.cpp:
+        (JSC::FrameWalker::FrameWalker):
+        (JSC::FrameWalker::walk):
+        (JSC::FrameWalker::advanceToParentFrame):
+        (JSC::FrameWalker::isAtTop):
+        (JSC::FrameWalker::resetAtMachineFrame):
+
 2016-02-11  Csaba Osztrogon√°c  <ossy@webkit.org>
 
         Unreviewed typo fix after r190063.
index 3c1bd37..5ebb0d4 100644 (file)
@@ -82,6 +82,7 @@ public:
     {
     }
 
+    SUPPRESS_ASAN
     size_t walk(Vector<UnprocessedStackFrame>& stackTrace, bool& didRunOutOfSpace)
     {
         if (sReportStats)
@@ -113,6 +114,7 @@ public:
 
 private:
 
+    SUPPRESS_ASAN
     void advanceToParentFrame()
     {
         m_callFrame = m_callFrame->callerFrame(m_vmEntryFrame);
@@ -123,6 +125,7 @@ private:
         return !m_callFrame;
     }
 
+    SUPPRESS_ASAN
     void resetAtMachineFrame()
     {
         if (isAtTop())