LCOV - code coverage report
Current view: top level - test/cctest - trace-extension.h (source / functions) Hit Total Coverage
Test: app.info Lines: 2 2 100.0 %
Date: 2019-04-17 Functions: 1 2 50.0 %

          Line data    Source code
       1             : // Copyright 2014 the V8 project authors. All rights reserved.
       2             : // Redistribution and use in source and binary forms, with or without
       3             : // modification, are permitted provided that the following conditions are
       4             : // met:
       5             : //
       6             : //     * Redistributions of source code must retain the above copyright
       7             : //       notice, this list of conditions and the following disclaimer.
       8             : //     * Redistributions in binary form must reproduce the above
       9             : //       copyright notice, this list of conditions and the following
      10             : //       disclaimer in the documentation and/or other materials provided
      11             : //       with the distribution.
      12             : //     * Neither the name of Google Inc. nor the names of its
      13             : //       contributors may be used to endorse or promote products derived
      14             : //       from this software without specific prior written permission.
      15             : //
      16             : // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
      17             : // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
      18             : // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
      19             : // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
      20             : // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
      21             : // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
      22             : // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
      23             : // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
      24             : // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
      25             : // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
      26             : // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
      27             : 
      28             : #ifndef V8_TEST_CCTEST_TRACE_EXTENSION_H_
      29             : #define V8_TEST_CCTEST_TRACE_EXTENSION_H_
      30             : 
      31             : #include "include/v8.h"
      32             : #include "src/globals.h"
      33             : 
      34             : namespace v8 {
      35             : struct TickSample;
      36             : namespace internal {
      37             : 
      38       53238 : class TraceExtension : public v8::Extension {
      39             :  public:
      40       26639 :   TraceExtension() : v8::Extension("v8/trace", kSource) { }
      41             :   v8::Local<v8::FunctionTemplate> GetNativeFunctionTemplate(
      42             :       v8::Isolate* isolate, v8::Local<v8::String> name) override;
      43             :   static void Trace(const v8::FunctionCallbackInfo<v8::Value>& args);
      44             :   static void JSTrace(const v8::FunctionCallbackInfo<v8::Value>& args);
      45             :   static void JSEntrySP(const v8::FunctionCallbackInfo<v8::Value>& args);
      46             :   static void JSEntrySPLevel2(const v8::FunctionCallbackInfo<v8::Value>& args);
      47             :   static Address GetJsEntrySp();
      48             :   static void InitTraceEnv(v8::TickSample* sample);
      49             :   static void DoTrace(Address fp);
      50             :  private:
      51             :   static Address GetFP(const v8::FunctionCallbackInfo<v8::Value>& args);
      52             :   static const char* kSource;
      53             : };
      54             : 
      55             : }  // namespace internal
      56             : }  // namespace v8
      57             : 
      58             : #endif

Generated by: LCOV version 1.10