Uname:Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64

Base Dir : /var/www/html

User : gavin


403WebShell
403Webshell
Server IP : 68.183.124.220  /  Your IP : 216.73.217.137
Web Server : Apache/2.4.18 (Ubuntu)
System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64
User : gavin ( 1000)
PHP Version : 7.0.33-0ubuntu0.16.04.16
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/gavin/workspace/happymandarin/node_modules/node-inspector/lib/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/gavin/workspace/happymandarin/node_modules/node-inspector/lib/CallFramesProvider.js
var async = require('async'),
    convert = require('./convert.js');

var SCOPE_ID_MATCHER = /^scope:(\d+):(\d+)$/;

/**
 * @param {Object} config
 * @param {DebuggerClient} debuggerClient
 */
function CallFramesProvider(config, session) {
  this._config = config;
  this._debuggerClient = session.debuggerClient;
}

CallFramesProvider.prototype = {

  fetchCallFrames: function(handleResponse) {
    this._debuggerClient.request(
      'backtrace',
      {
        inlineRefs: true,
        fromFrame: 0,
        toFrame: this._config.stackTraceLimit
      },
      function(err, responseBody, responseRefs) {
        if (err) {
          handleResponse(err);
          return;
        }

        this._convertBacktraceToCallFrames(responseBody, responseRefs, handleResponse);
      }.bind(this));
  },

  _convertBacktraceToCallFrames: function(backtraceResponseBody, backtrackResponseRefs, handleResponse) {
    var debuggerFrames = backtraceResponseBody.frames || [];

    async.map(
      debuggerFrames,
      this._convertDebuggerFrameToInspectorFrame.bind(this, backtrackResponseRefs),
      handleResponse);
  },

  _convertDebuggerFrameToInspectorFrame: function(backtrackResponseRefs, frame, done) {
    var scopeChain = frame.scopes.map(function(scope) {
      return {
        object: {
          type: 'object',
          objectId: 'scope:' + frame.index + ':' + scope.index,
          className: 'Object',
          description: 'Object'
        },
        type: convert.v8ScopeTypeToString(scope.type)
      };
    });

    done(null, {
      callFrameId: frame.index.toString(),
      functionName: frame.func.inferredName || frame.func.name,
      location: {
        scriptId: convert.v8ScriptIdToInspectorId(frame.func.scriptId),
        lineNumber: frame.line,
        columnNumber: frame.column
      },
      scopeChain: scopeChain,
      this: convert.v8RefToInspectorObject(frame.receiver)
    });
  },

  isScopeId: function(objectId) {
    return SCOPE_ID_MATCHER.test(objectId);
  },

  resolveScopeId: function(objectId, callback) {
    var scopeIdMatch = SCOPE_ID_MATCHER.exec(objectId);
    if (!scopeIdMatch) throw new Error('Invalid scope id "' + objectId + '"');
    this._debuggerClient.request(
      'scope',
      {
        number: Number(scopeIdMatch[2]),
        frameNumber: Number(scopeIdMatch[1])
      },
      function(err, result) {
        if (err)
          callback(err);
        else
          callback(null, result.object.ref);
      });
  }
};

exports.CallFramesProvider = CallFramesProvider;

Youez - 2016 - github.com/yon3zu
LinuXploit