Changeset 762


Ignore:
Timestamp:
2011-04-17T14:00:32+02:00 (4 years ago)
Author:
moo
Message:

Decompiler: improve dumpop for easier reading

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Decompiler.class.php

    r761 r762  
    634634            if ($opcodes[$last]['opcode'] == XC_HANDLE_EXCEPTION) { 
    635635                $this->usedOps[XC_HANDLE_EXCEPTION] = true; 
    636                 unset($opcodes[$last]); 
     636                $opcodes[$last]['opcode'] = XC_NOP; 
    637637                --$last; 
    638638            } 
     
    640640                $op1 = $opcodes[$last]['op1']; 
    641641                if ($op1['op_type'] == XC_IS_CONST && array_key_exists('constant', $op1) && $op1['constant'] === $defaultReturnValue) { 
    642                     unset($opcodes[$last]); 
     642                    $opcodes[$last]['opcode'] = XC_NOP; 
    643643                    --$last; 
    644644                } 
     
    913913                continue; 
    914914            } 
    915             // echo $i; $this->dumpop($op, $EX); //var_dump($op); 
     915            // echo $i, ' '; $this->dumpop($op, $EX); //var_dump($op); 
    916916 
    917917            $resvar = null; 
     
    17251725        $op1 = $op['op1']; 
    17261726        $op2 = $op['op2']; 
    1727         $d = array('opname' => xcache_get_opcode($op['opcode']), 'opcode' => $op['opcode']); 
    1728  
    1729         foreach (array('op1' => 'op1', 'op2' => 'op2', 'result' => 'res') as $k => $kk) { 
     1727        $d = array('n' => xcache_get_opcode($op['opcode']), 'c' => $op['opcode']); 
     1728 
     1729        foreach (array('op1' => '1:', 'op2' => '2:', 'result' => '>') as $k => $kk) { 
    17301730            switch ($op[$k]['op_type']) { 
    17311731            case XC_IS_UNUSED: 
    1732                 $d[$kk] = '*UNUSED* ' . $op[$k]['opline_num']; 
     1732                $d[$kk] = 'U:' . $op[$k]['opline_num']; 
    17331733                break; 
    17341734 
    17351735            case XC_IS_VAR: 
    17361736                $d[$kk] = '$' . $op[$k]['var']; 
    1737                 if ($kk != 'res') { 
     1737                if ($k != 'result') { 
    17381738                    $d[$kk] .= ':' . str($this->getOpVal($op[$k], $EX)); 
    17391739                } 
     
    17421742            case XC_IS_TMP_VAR: 
    17431743                $d[$kk] = '#' . $op[$k]['var']; 
    1744                 if ($kk != 'res') { 
     1744                if ($k != 'result') { 
    17451745                    $d[$kk] .= ':' . str($this->getOpVal($op[$k], $EX)); 
    17461746                } 
     
    17521752 
    17531753            default: 
    1754                 if ($kk == 'res') { 
     1754                if ($k == 'result') { 
    17551755                    var_dump($op); 
    17561756                    exit; 
     
    17621762            } 
    17631763        } 
    1764         $d['ext'] = $op['extended_value']; 
    1765  
    1766         var_dump($d); 
     1764        $d[';'] = $op['extended_value']; 
     1765 
     1766        foreach ($d as $k => $v) { 
     1767            echo $k, str($v), "\t"; 
     1768        } 
     1769        echo PHP_EOL; 
    17671770    } 
    17681771    // }}} 
Note: See TracChangeset for help on using the changeset viewer.