Skip to content

Instantly share code, notes, and snippets.

@youkidearitai
Last active February 27, 2020 12:25
Show Gist options
  • Save youkidearitai/b62dc7b8afe469422ea2b70dc1689db0 to your computer and use it in GitHub Desktop.
Save youkidearitai/b62dc7b8afe469422ea2b70dc1689db0 to your computer and use it in GitHub Desktop.
>>> print_cvs
Compiled variables count: 0

>>> print $eg
$9 = {
  uninitialized_zval = {
    value = {
      lval = 0,
      dval = 0,
      counted = 0x0,
      str = 0x0,
      arr = 0x0,
      obj = 0x0,
      res = 0x0,
      ref = 0x0,
      ast = 0x0,
      zv = 0x0,
      ptr = 0x0,
      ce = 0x0,
      func = 0x0,
      ww = {
        w1 = 0,
        w2 = 0
      }
    },
    u1 = {
      v = {
        type = 1 '\001',
        type_flags = 0 '\000',
        u = {
          extra = 0
        }
      },
      type_info = 1
    },
    u2 = {
      next = 0,
      cache_slot = 0,
      opline_num = 0,
      lineno = 0,
      num_args = 0,
      fe_pos = 0,
      fe_iter_idx = 0,
      access_flags = 0,
      property_guard = 0,
      constant_flags = 0,
      extra = 0
    }
  },
  error_zval = {
    value = {
      lval = 0,
      dval = 0,
      counted = 0x0,
      str = 0x0,
      arr = 0x0,
      obj = 0x0,
      res = 0x0,
      ref = 0x0,
      ast = 0x0,
      zv = 0x0,
      ptr = 0x0,
      ce = 0x0,
      func = 0x0,
      ww = {
        w1 = 0,
        w2 = 0
      }
    },
    u1 = {
      v = {
        type = 15 '\017',
        type_flags = 0 '\000',
        u = {
          extra = 0
        }
      },
      type_info = 15
    },
    u2 = {
      next = 0,
      cache_slot = 0,
      opline_num = 0,
      lineno = 0,
      num_args = 0,
      fe_pos = 0,
      fe_iter_idx = 0,
      access_flags = 0,
      property_guard = 0,
      constant_flags = 0,
      extra = 0
    }
  },
  symtable_cache = {[0] = 0x0 <repeats 32 times>},
  symtable_cache_limit = 0x9423200 <executor_globals+288>,
  symtable_cache_ptr = 0x9423100 <executor_globals+32>,
  symbol_table = {
    gc = {
      refcount = 1,
      u = {
        type_info = 23
      }
    },
    u = {
      v = {
        flags = 16 '\020',
        _unused = 0 '\000',
        nIteratorsCount = 0 '\000',
        _unused2 = 0 '\000'
      },
      flags = 16
    },
    nTableMask = 4294967168,
    arData = 0x7ffffa058200,
    nNumUsed = 8,
    nNumOfElements = 8,
    nTableSize = 64,
    nInternalPointer = 0,
    nNextFreeElement = 0,
    pDestructor = 0x860e431 <zval_ptr_dtor>
  },
  included_files = {
    gc = {
      refcount = 1,
      u = {
        type_info = 23
      }
    },
    u = {
      v = {
        flags = 8 '\b',
        _unused = 0 '\000',
        nIteratorsCount = 0 '\000',
        _unused2 = 0 '\000'
      },
      flags = 8
    },
    nTableMask = 4294967294,
    arData = 0x8e79e70,
    nNumUsed = 0,
    nNumOfElements = 0,
    nTableSize = 8,
    nInternalPointer = 0,
    nNextFreeElement = 0,
    pDestructor = 0x0
  },
  bailout = 0x7ffffffec430,
  error_reporting = 22519,
  exit_status = 0,
  function_table = 0x963b7a0,
  class_table = 0x963b7e0,
  zend_constants = 0x963b860,
  vm_stack_top = 0x7ffffa013100,
  vm_stack_end = 0x7ffffa053000,
  vm_stack = 0x7ffffa013000,
  vm_stack_page_size = 262144,
  current_execute_data = 0x7ffffa0130a0,
  fake_scope = 0x0,
  precision = 14,
  ticks_count = 0,
  persistent_constants_count = 1123,
  persistent_functions_count = 1207,
  persistent_classes_count = 178,
  in_autoload = 0x0,
  autoload_func = 0x0,
  full_tables_cleanup = 0 '\000',
  no_extensions = 1 '\001',
  vm_interrupt = 0 '\000',
  timed_out = 0 '\000',
  hard_timeout = 2,
  regular_list = {
    gc = {
      refcount = 1,
      u = {
        type_info = 23
      }
    },
    u = {
      v = {
        flags = 20 '\024',
        _unused = 0 '\000',
        nIteratorsCount = 0 '\000',
        _unused2 = 0 '\000'
      },
      flags = 20
    },
    nTableMask = 4294967294,
    arData = 0x7ffffa05c288,
    nNumUsed = 4,
    nNumOfElements = 3,
    nTableSize = 8,
    nInternalPointer = 0,
    nNextFreeElement = 4,
    pDestructor = 0x862ec47 <list_entry_destructor>
  },
  persistent_list = {
    gc = {
      refcount = 1,
      u = {
        type_info = 135
      }
    },
    u = {
      v = {
        flags = 8 '\b',
        _unused = 0 '\000',
        nIteratorsCount = 0 '\000',
        _unused2 = 0 '\000'
      },
      flags = 8
    },
    nTableMask = 4294967294,
    arData = 0x8e79e70,
    nNumUsed = 0,
    nNumOfElements = 0,
    nTableSize = 8,
    nInternalPointer = 0,
    nNextFreeElement = 0,
    pDestructor = 0x862eca6 <plist_entry_destructor>
  },
  user_error_handler_error_reporting = 0,
  user_error_handler = {
    value = {
      lval = 0,
      dval = 0,
      counted = 0x0,
      str = 0x0,
      arr = 0x0,
      obj = 0x0,
      res = 0x0,
      ref = 0x0,
      ast = 0x0,
      zv = 0x0,
      ptr = 0x0,
      ce = 0x0,
      func = 0x0,
      ww = {
        w1 = 0,
        w2 = 0
      }
    },
    u1 = {
      v = {
        type = 0 '\000',
        type_flags = 0 '\000',
        u = {
          extra = 0
        }
      },
      type_info = 0
    },
    u2 = {
      next = 0,
      cache_slot = 0,
      opline_num = 0,
      lineno = 0,
      num_args = 0,
      fe_pos = 0,
      fe_iter_idx = 0,
      access_flags = 0,
      property_guard = 0,
      constant_flags = 0,
      extra = 0
    }
  },
  user_exception_handler = {
    value = {
      lval = 0,
      dval = 0,
      counted = 0x0,
      str = 0x0,
      arr = 0x0,
      obj = 0x0,
      res = 0x0,
      ref = 0x0,
      ast = 0x0,
      zv = 0x0,
      ptr = 0x0,
      ce = 0x0,
      func = 0x0,
      ww = {
        w1 = 0,
        w2 = 0
      }
    },
    u1 = {
      v = {
        type = 0 '\000',
        type_flags = 0 '\000',
        u = {
          extra = 0
        }
      },
      type_info = 0
    },
    u2 = {
      next = 0,
      cache_slot = 0,
      opline_num = 0,
      lineno = 0,
      num_args = 0,
      fe_pos = 0,
      fe_iter_idx = 0,
      access_flags = 0,
      property_guard = 0,
      constant_flags = 0,
      extra = 0
    }
  },
  user_error_handlers_error_reporting = {
    size = 4,
    top = 0,
    max = 0,
    elements = 0x0
  },
  user_error_handlers = {
    size = 16,
    top = 0,
    max = 0,
    elements = 0x0
  },
  user_exception_handlers = {
    size = 16,
    top = 0,
    max = 0,
    elements = 0x0
  },
  error_handling = EH_NORMAL,
  exception_class = 0x0,
  timeout_seconds = 0,
  lambda_count = 0,
  ini_directives = 0x9657fa0,
  modified_ini_directives = 0x0,
  error_reporting_ini_entry = 0x0,
  objects_store = {
    object_buckets = 0x7ffffa054000,
    top = 1,
    size = 1024,
    free_list_head = -1
  },
  exception = 0x0,
  prev_exception = 0x0,
  opline_before_exception = 0x0,
  exception_op = {[0] = {
      handler = 0x86ebd07 <execute_ex+2002>,
      op1 = {
        constant = 0,
        var = 0,
        num = 0,
        opline_num = 0,
        jmp_offset = 0
      },
      op2 = {
        constant = 0,
        var = 0,
        num = 0,
        opline_num = 0,
        jmp_offset = 0
      },
      result = {
        constant = 0,
        var = 0,
        num = 0,
        opline_num = 0,
        jmp_offset = 0
      },
      extended_value = 0,
      lineno = 0,
      opcode = 149 '\225',
      op1_type = 0 '\000',
      op2_type = 0 '\000',
      result_type = 0 '\000'
    }, [1] = {
      handler = 0x86ebd07 <execute_ex+2002>,
      op1 = {
        constant = 0,
        var = 0,
        num = 0,
        opline_num = 0,
        jmp_offset = 0
      },
      op2 = {
        constant = 0,
        var = 0,
        num = 0,
        opline_num = 0,
        jmp_offset = 0
      },
      result = {
        constant = 0,
        var = 0,
        num = 0,
        opline_num = 0,
        jmp_offset = 0
      },
      extended_value = 0,
      lineno = 0,
      opcode = 149 '\225',
      op1_type = 0 '\000',
      op2_type = 0 '\000',
      result_type = 0 '\000'
    }, [2] = {
      handler = 0x86ebd07 <execute_ex+2002>,
      op1 = {
        constant = 0,
        var = 0,
        num = 0,
        opline_num = 0,
        jmp_offset = 0
      },
      op2 = {
        constant = 0,
        var = 0,
        num = 0,
        opline_num = 0,
        jmp_offset = 0
      },
      result = {
        constant = 0,
        var = 0,
        num = 0,
        opline_num = 0,
        jmp_offset = 0
      },
      extended_value = 0,
      lineno = 0,
      opcode = 149 '\225',
      op1_type = 0 '\000',
      op2_type = 0 '\000',
      result_type = 0 '\000'
    }},
  current_module = 0x0,
  active = 1 '\001',
  flags = 0 '\000',
  assertions = 1,
  ht_iterators_count = 16,
  ht_iterators_used = 0,
  ht_iterators = 0x94234e0 <executor_globals+1024>,
  ht_iterators_slots = {[0] = {
      ht = 0x0,
      pos = 0
    } <repeats 16 times>},
  saved_fpu_cw_ptr = 0x94235e8 <executor_globals+1288>,
  saved_fpu_cw = 639,
  trampoline = {
    type = 0 '\000',
    quick_arg_flags = 0,
    common = {
      type = 0 '\000',
      arg_flags = "\000\000",
      fn_flags = 0,
      function_name = 0x0,
      scope = 0x0,
      prototype = 0x0,
      num_args = 0,
      required_num_args = 0,
      arg_info = 0x0
    },
    op_array = {
      type = 0 '\000',
      arg_flags = "\000\000",
      fn_flags = 0,
      function_name = 0x0,
      scope = 0x0,
      prototype = 0x0,
      num_args = 0,
      required_num_args = 0,
      arg_info = 0x0,
      cache_size = 0,
      last_var = 0,
      T = 0,
      last = 0,
      opcodes = 0x0,
      run_time_cache__ptr = 0x0,
      static_variables_ptr__ptr = 0x0,
      static_variables = 0x0,
      vars = 0x0,
      refcount = 0x0,
      last_live_range = 0,
      last_try_catch = 0,
      live_range = 0x0,
      try_catch_array = 0x0,
      filename = 0x0,
      line_start = 0,
      line_end = 0,
      doc_comment = 0x0,
      last_literal = 0,
      literals = 0x0,
      reserved = {[0] = 0x0, [1] = 0x0, [2] = 0x0, [3] = 0x0, [4] = 0x0, [5] = 0x0}
    },
    internal_function = {
      type = 0 '\000',
      arg_flags = "\000\000",
      fn_flags = 0,
      function_name = 0x0,
      scope = 0x0,
      prototype = 0x0,
      num_args = 0,
      required_num_args = 0,
      arg_info = 0x0,
      handler = 0x0,
      module = 0x0,
      reserved = {[0] = 0x0, [1] = 0x0, [2] = 0x0, [3] = 0x0, [4] = 0x0, [5] = 0x0}
    }
  },
  call_trampoline_op = {
    handler = 0x86ebd67 <execute_ex+2098>,
    op1 = {
      constant = 0,
      var = 0,
      num = 0,
      opline_num = 0,
      jmp_offset = 0
    },
    op2 = {
      constant = 0,
      var = 0,
      num = 0,
      opline_num = 0,
      jmp_offset = 0
    },
    result = {
      constant = 0,
      var = 0,
      num = 0,
      opline_num = 0,
      jmp_offset = 0
    },
    extended_value = 0,
    lineno = 0,
    opcode = 158 '\236',
    op1_type = 0 '\000',
    op2_type = 0 '\000',
    result_type = 0 '\000'
  },
  each_deprecation_thrown = 0 '\000',
  weakrefs = {
    gc = {
      refcount = 1,
      u = {
        type_info = 23
      }
    },
    u = {
      v = {
        flags = 8 '\b',
        _unused = 0 '\000',
        nIteratorsCount = 0 '\000',
        _unused2 = 0 '\000'
      },
      flags = 8
    },
    nTableMask = 4294967294,
    arData = 0x8e79e70,
    nNumUsed = 0,
    nNumOfElements = 0,
    nTableSize = 8,
    nInternalPointer = 0,
    nNextFreeElement = 0,
    pDestructor = 0x864fd6b <zend_weakref_unref>
  },
  exception_ignore_args = 0 '\000',
  reserved = {[0] = 0x0, [1] = 0x0, [2] = 0x0, [3] = 0x0, [4] = 0x0, [5] = 0x0}
}
>>> print &(*(($eg.class_table.arData.key).val))
$39 = 0x9652148 "stdclass"
>>> print *$eg.current_execute_data.func
$62 = {
  type = 1 '\001',
  quick_arg_flags = 1,
  common = {
    type = 1 '\001',
    arg_flags = "\000\000",
    fn_flags = 1,
    function_name = 0x964e990,
    scope = 0x0,
    prototype = 0x0,
    num_args = 1,
    required_num_args = 1,
    arg_info = 0x938cc38 <arginfo_study_extension_dump+24>
  },
  op_array = {
    type = 1 '\001',
    arg_flags = "\000\000",
    fn_flags = 1,
    function_name = 0x964e990,
    scope = 0x0,
    prototype = 0x0,
    num_args = 1,
    required_num_args = 1,
    arg_info = 0x938cc38 <arginfo_study_extension_dump+24>,
    cache_size = 139844309,
    last_var = 0,
    T = 157608160,
    last = 0,
    opcodes = 0x0,
    run_time_cache__ptr = 0x0,
    static_variables_ptr__ptr = 0x0,
    static_variables = 0x0,
    vars = 0x0,
    refcount = 0x0,
    last_live_range = 157752096,
    last_try_catch = 0,
    live_range = 0x31,
    try_catch_array = 0x1c600000001,
    filename = 0x8377da324b3da880,
    line_start = 9,
    line_end = 0,
    doc_comment = 0x657a696e656b6f74,
    last_literal = -1085931406,
    literals = 0xb1,
    reserved = {[0] = 0x13416b6000000a8, [1] = 0x1, [2] = 0x0, [3] = 0x0, [4] = 0x8e53244, [5] = 0x938cd40 <tokenizer_functions>}
  },
  internal_function = {
    type = 1 '\001',
    arg_flags = "\000\000",
    fn_flags = 1,
    function_name = 0x964e990,
    scope = 0x0,
    prototype = 0x0,
    num_args = 1,
    required_num_args = 1,
    arg_info = 0x938cc38 <arginfo_study_extension_dump+24>,
    handler = 0x855dad5 <zif_study_extension_dump>,
    module = 0x964e8e0,
    reserved = {[0] = 0x0, [1] = 0x0, [2] = 0x0, [3] = 0x0, [4] = 0x0, [5] = 0x0}
  }
}
>>> print $eg.current_execute_data.func.internal_function
$63 = {
  type = 1 '\001',
  arg_flags = "\000\000",
  fn_flags = 1,
  function_name = 0x964e990,
  scope = 0x0,
  prototype = 0x0,
  num_args = 1,
  required_num_args = 1,
  arg_info = 0x938cc38 <arginfo_study_extension_dump+24>,
  handler = 0x855dad5 <zif_study_extension_dump>,
  module = 0x964e8e0,
  reserved = {[0] = 0x0, [1] = 0x0, [2] = 0x0, [3] = 0x0, [4] = 0x0, [5] = 0x0}
}
>>> print $eg.current_execute_data.func.internal_function.function_name
$64 = (zend_string *) 0x964e990
>>> print *$eg.current_execute_data.func.internal_function.function_name
$65 = {
  gc = {
    refcount = 1,
    u = {
      type_info = 454
    }
  },
  h = 14716051886523176527,
  len = 20,
  val = "s"
}
>>> print &(*$eg.current_execute_data.func.internal_function.function_name.val)
$66 = 0x964e9a8 "study_extension_dump"
>>>


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment