From 20f37407e149bc4a815b67c92fbd6ab84c28d763 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 10 Nov 2013 18:01:09 -0200 Subject: [PATCH] - Added separated file to opcode decode function --- config.m4 | 2 +- phpdbg_opcode.c | 195 ++++++++++++++++++++++++++++++++++++++++++++++++ phpdbg_opcode.h | 27 +++++++ phpdbg_prompt.c | 177 +------------------------------------------ 4 files changed, 225 insertions(+), 176 deletions(-) create mode 100644 phpdbg_opcode.c create mode 100644 phpdbg_opcode.h diff --git a/config.m4 b/config.m4 index 4f98bb92bf..f3671f4b10 100644 --- a/config.m4 +++ b/config.m4 @@ -9,7 +9,7 @@ if test "$PHP_PHPDBG" != "no"; then AC_DEFINE(HAVE_PHPDBG, 1, [ ]) PHP_PHPDBG_CFLAGS=-I$abs_srcdir/sapi/phpdbg - PHP_PHPDBG_FILES="phpdbg.c phpdbg_prompt.c phpdbg_help.c phpdbg_bp.c" + PHP_PHPDBG_FILES="phpdbg.c phpdbg_prompt.c phpdbg_help.c phpdbg_bp.c phpdbg_opcode.c" PHP_ADD_MAKEFILE_FRAGMENT([$abs_srcdir/sapi/phpdbg/Makefile.frag]) PHP_SELECT_SAPI(phpdbg, program, $PHP_PHPDBG_FILES, $PHP_PHPDBG_CFLAGS, [$(SAPI_PHPDBG_PATH)]) diff --git a/phpdbg_opcode.c b/phpdbg_opcode.c new file mode 100644 index 0000000000..b77cfb730b --- /dev/null +++ b/phpdbg_opcode.c @@ -0,0 +1,195 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Felipe Pena | + | Authors: Joe Watkins | + +----------------------------------------------------------------------+ +*/ + +#include "phpdbg_opcode.h" +#include "zend_vm_opcodes.h" + +const char *phpdbg_decode_opcode(zend_uchar opcode) /* {{{ */ +{ +#define CASE(s) return #s + switch (opcode) { + CASE(ZEND_NOP); + CASE(ZEND_ADD); + CASE(ZEND_SUB); + CASE(ZEND_MUL); + CASE(ZEND_DIV); + CASE(ZEND_MOD); + CASE(ZEND_SL); + CASE(ZEND_SR); + CASE(ZEND_CONCAT); + CASE(ZEND_BW_OR); + CASE(ZEND_BW_AND); + CASE(ZEND_BW_XOR); + CASE(ZEND_BW_NOT); + CASE(ZEND_BOOL_NOT); + CASE(ZEND_BOOL_XOR); + CASE(ZEND_IS_IDENTICAL); + CASE(ZEND_IS_NOT_IDENTICAL); + CASE(ZEND_IS_EQUAL); + CASE(ZEND_IS_NOT_EQUAL); + CASE(ZEND_IS_SMALLER); + CASE(ZEND_IS_SMALLER_OR_EQUAL); + CASE(ZEND_CAST); + CASE(ZEND_QM_ASSIGN); + CASE(ZEND_ASSIGN_ADD); + CASE(ZEND_ASSIGN_SUB); + CASE(ZEND_ASSIGN_MUL); + CASE(ZEND_ASSIGN_DIV); + CASE(ZEND_ASSIGN_MOD); + CASE(ZEND_ASSIGN_SL); + CASE(ZEND_ASSIGN_SR); + CASE(ZEND_ASSIGN_CONCAT); + CASE(ZEND_ASSIGN_BW_OR); + CASE(ZEND_ASSIGN_BW_AND); + CASE(ZEND_ASSIGN_BW_XOR); + CASE(ZEND_PRE_INC); + CASE(ZEND_PRE_DEC); + CASE(ZEND_POST_INC); + CASE(ZEND_POST_DEC); + CASE(ZEND_ASSIGN); + CASE(ZEND_ASSIGN_REF); + CASE(ZEND_ECHO); + CASE(ZEND_PRINT); + CASE(ZEND_JMP); + CASE(ZEND_JMPZ); + CASE(ZEND_JMPNZ); + CASE(ZEND_JMPZNZ); + CASE(ZEND_JMPZ_EX); + CASE(ZEND_JMPNZ_EX); + CASE(ZEND_CASE); + CASE(ZEND_SWITCH_FREE); + CASE(ZEND_BRK); + CASE(ZEND_CONT); + CASE(ZEND_BOOL); + CASE(ZEND_INIT_STRING); + CASE(ZEND_ADD_CHAR); + CASE(ZEND_ADD_STRING); + CASE(ZEND_ADD_VAR); + CASE(ZEND_BEGIN_SILENCE); + CASE(ZEND_END_SILENCE); + CASE(ZEND_INIT_FCALL_BY_NAME); + CASE(ZEND_DO_FCALL); + CASE(ZEND_DO_FCALL_BY_NAME); + CASE(ZEND_RETURN); + CASE(ZEND_RECV); + CASE(ZEND_RECV_INIT); + CASE(ZEND_SEND_VAL); + CASE(ZEND_SEND_VAR); + CASE(ZEND_SEND_REF); + CASE(ZEND_NEW); + CASE(ZEND_INIT_NS_FCALL_BY_NAME); + CASE(ZEND_FREE); + CASE(ZEND_INIT_ARRAY); + CASE(ZEND_ADD_ARRAY_ELEMENT); + CASE(ZEND_INCLUDE_OR_EVAL); + CASE(ZEND_UNSET_VAR); + CASE(ZEND_UNSET_DIM); + CASE(ZEND_UNSET_OBJ); + CASE(ZEND_FE_RESET); + CASE(ZEND_FE_FETCH); + CASE(ZEND_EXIT); + CASE(ZEND_FETCH_R); + CASE(ZEND_FETCH_DIM_R); + CASE(ZEND_FETCH_OBJ_R); + CASE(ZEND_FETCH_W); + CASE(ZEND_FETCH_DIM_W); + CASE(ZEND_FETCH_OBJ_W); + CASE(ZEND_FETCH_RW); + CASE(ZEND_FETCH_DIM_RW); + CASE(ZEND_FETCH_OBJ_RW); + CASE(ZEND_FETCH_IS); + CASE(ZEND_FETCH_DIM_IS); + CASE(ZEND_FETCH_OBJ_IS); + CASE(ZEND_FETCH_FUNC_ARG); + CASE(ZEND_FETCH_DIM_FUNC_ARG); + CASE(ZEND_FETCH_OBJ_FUNC_ARG); + CASE(ZEND_FETCH_UNSET); + CASE(ZEND_FETCH_DIM_UNSET); + CASE(ZEND_FETCH_OBJ_UNSET); + CASE(ZEND_FETCH_DIM_TMP_VAR); + CASE(ZEND_FETCH_CONSTANT); + CASE(ZEND_GOTO); + CASE(ZEND_EXT_STMT); + CASE(ZEND_EXT_FCALL_BEGIN); + CASE(ZEND_EXT_FCALL_END); + CASE(ZEND_EXT_NOP); + CASE(ZEND_TICKS); + CASE(ZEND_SEND_VAR_NO_REF); + CASE(ZEND_CATCH); + CASE(ZEND_THROW); + CASE(ZEND_FETCH_CLASS); + CASE(ZEND_CLONE); + CASE(ZEND_RETURN_BY_REF); + CASE(ZEND_INIT_METHOD_CALL); + CASE(ZEND_INIT_STATIC_METHOD_CALL); + CASE(ZEND_ISSET_ISEMPTY_VAR); + CASE(ZEND_ISSET_ISEMPTY_DIM_OBJ); + CASE(ZEND_PRE_INC_OBJ); + CASE(ZEND_PRE_DEC_OBJ); + CASE(ZEND_POST_INC_OBJ); + CASE(ZEND_POST_DEC_OBJ); + CASE(ZEND_ASSIGN_OBJ); + CASE(ZEND_INSTANCEOF); + CASE(ZEND_DECLARE_CLASS); + CASE(ZEND_DECLARE_INHERITED_CLASS); + CASE(ZEND_DECLARE_FUNCTION); + CASE(ZEND_RAISE_ABSTRACT_ERROR); + CASE(ZEND_DECLARE_CONST); + CASE(ZEND_ADD_INTERFACE); + CASE(ZEND_DECLARE_INHERITED_CLASS_DELAYED); + CASE(ZEND_VERIFY_ABSTRACT_CLASS); + CASE(ZEND_ASSIGN_DIM); + CASE(ZEND_ISSET_ISEMPTY_PROP_OBJ); + CASE(ZEND_HANDLE_EXCEPTION); + CASE(ZEND_USER_OPCODE); +#ifdef ZEND_JMP_SET + CASE(ZEND_JMP_SET); +#endif + CASE(ZEND_DECLARE_LAMBDA_FUNCTION); +#ifdef ZEND_ADD_TRAIT + CASE(ZEND_ADD_TRAIT); +#endif +#ifdef ZEND_BIND_TRAITS + CASE(ZEND_BIND_TRAITS); +#endif +#ifdef ZEND_SEPARATE + CASE(ZEND_SEPARATE); +#endif +#ifdef ZEND_QM_ASSIGN_VAR + CASE(ZEND_QM_ASSIGN_VAR); +#endif +#ifdef ZEND_JMP_SET_VAR + CASE(ZEND_JMP_SET_VAR); +#endif + CASE(ZEND_DISCARD_EXCEPTION); + CASE(ZEND_YIELD); + CASE(ZEND_GENERATOR_RETURN); +#ifdef ZEND_FAST_CALL + CASE(ZEND_FAST_CALL); +#endif +#ifdef ZEND_FAST_RET + CASE(ZEND_FAST_RET); +#endif +#ifdef ZEND_RECV_VARIADIC + CASE(ZEND_RECV_VARIADIC); +#endif + CASE(ZEND_OP_DATA); + default: return "UNKNOWN"; + } +} /* }}} */ diff --git a/phpdbg_opcode.h b/phpdbg_opcode.h new file mode 100644 index 0000000000..28fc806c1c --- /dev/null +++ b/phpdbg_opcode.h @@ -0,0 +1,27 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2013 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Felipe Pena | + | Authors: Joe Watkins | + +----------------------------------------------------------------------+ +*/ + +#ifndef PHPDBG_OPCODE_H +#define PHPDBG_OPCODE_H + +#include "zend_types.h" + +const char *phpdbg_decode_opcode(zend_uchar); + +#endif /* PHPDBG_OPCODE_H */ diff --git a/phpdbg_prompt.c b/phpdbg_prompt.c index dee88d2534..cd432fbf61 100644 --- a/phpdbg_prompt.c +++ b/phpdbg_prompt.c @@ -24,6 +24,7 @@ #include "phpdbg.h" #include "phpdbg_help.h" #include "phpdbg_bp.h" +#include "phpdbg_opcode.h" static const phpdbg_command_t phpdbg_prompt_commands[]; @@ -333,184 +334,10 @@ int phpdbg_interactive(int argc, char **argv TSRMLS_DC) /* {{{ */ return SUCCESS; } /* }}} */ -static const char *phpdbg_decode_opcode(zend_uchar opcode TSRMLS_DC) { /* {{{ */ - switch (opcode) { - case ZEND_NOP: return "ZEND_NOP"; - case ZEND_ADD: return "ZEND_ADD"; - case ZEND_SUB: return "ZEND_SUB"; - case ZEND_MUL: return "ZEND_MUL"; - case ZEND_DIV: return "ZEND_DIV"; - case ZEND_MOD: return "ZEND_MOD"; - case ZEND_SL: return "ZEND_SL"; - case ZEND_SR: return "ZEND_SR"; - case ZEND_CONCAT: return "ZEND_CONCAT"; - case ZEND_BW_OR: return "ZEND_BW_OR"; - case ZEND_BW_AND: return "ZEND_BW_AND"; - case ZEND_BW_XOR: return "ZEND_BW_XOR"; - case ZEND_BW_NOT: return "ZEND_BW_NOT"; - case ZEND_BOOL_NOT: return "ZEND_BOOL_NOT"; - case ZEND_BOOL_XOR: return "ZEND_BOOL_XOR"; - case ZEND_IS_IDENTICAL: return "ZEND_IS_IDENTICAL"; - case ZEND_IS_NOT_IDENTICAL: return "ZEND_IS_NOT_IDENTICAL"; - case ZEND_IS_EQUAL: return "ZEND_IS_EQUAL"; - case ZEND_IS_NOT_EQUAL: return "ZEND_IS_NOT_EQUAL"; - case ZEND_IS_SMALLER: return "ZEND_IS_SMALLER"; - case ZEND_IS_SMALLER_OR_EQUAL: return "ZEND_IS_SMALLER_OR_EQUAL"; - case ZEND_CAST: return "ZEND_CAST"; - case ZEND_QM_ASSIGN: return "ZEND_QM_ASSIGN"; - case ZEND_ASSIGN_ADD: return "ZEND_ASSIGN_ADD"; - case ZEND_ASSIGN_SUB: return "ZEND_ASSIGN_SUB"; - case ZEND_ASSIGN_MUL: return "ZEND_ASSIGN_MUL"; - case ZEND_ASSIGN_DIV: return "ZEND_ASSIGN_DIV"; - case ZEND_ASSIGN_MOD: return "ZEND_ASSIGN_MOD"; - case ZEND_ASSIGN_SL: return "ZEND_ASSIGN_SL"; - case ZEND_ASSIGN_SR: return "ZEND_ASSIGN_SR"; - case ZEND_ASSIGN_CONCAT: return "ZEND_ASSIGN_CONCAT"; - case ZEND_ASSIGN_BW_OR: return "ZEND_ASSIGN_BW_OR"; - case ZEND_ASSIGN_BW_AND: return "ZEND_ASSIGN_BW_AND"; - case ZEND_ASSIGN_BW_XOR: return "ZEND_ASSIGN_BW_XOR"; - case ZEND_PRE_INC: return "ZEND_PRE_INC"; - case ZEND_PRE_DEC: return "ZEND_PRE_DEC"; - case ZEND_POST_INC: return "ZEND_POST_INC"; - case ZEND_POST_DEC: return "ZEND_POST_DEC"; - case ZEND_ASSIGN: return "ZEND_ASSIGN"; - case ZEND_ASSIGN_REF: return "ZEND_ASSIGN_REF"; - case ZEND_ECHO: return "ZEND_ECHO"; - case ZEND_PRINT: return "ZEND_PRINT"; - case ZEND_JMP: return "ZEND_JMP"; - case ZEND_JMPZ: return "ZEND_JMPZ"; - case ZEND_JMPNZ: return "ZEND_JMPNZ"; - case ZEND_JMPZNZ: return "ZEND_JMPZNZ"; - case ZEND_JMPZ_EX: return "ZEND_JMPZ_EX"; - case ZEND_JMPNZ_EX: return "ZEND_JMPNZ_EX"; - case ZEND_CASE: return "ZEND_CASE"; - case ZEND_SWITCH_FREE: return "ZEND_SWITCH_FREE"; - case ZEND_BRK: return "ZEND_BRK"; - case ZEND_CONT: return "ZEND_CONT"; - case ZEND_BOOL: return "ZEND_BOOL"; - case ZEND_INIT_STRING: return "ZEND_INIT_STRING"; - case ZEND_ADD_CHAR: return "ZEND_ADD_CHAR"; - case ZEND_ADD_STRING: return "ZEND_ADD_STRING"; - case ZEND_ADD_VAR: return "ZEND_ADD_VAR"; - case ZEND_BEGIN_SILENCE: return "ZEND_BEGIN_SILENCE"; - case ZEND_END_SILENCE: return "ZEND_END_SILENCE"; - case ZEND_INIT_FCALL_BY_NAME: return "ZEND_INIT_FCALL_BY_NAME"; - case ZEND_DO_FCALL: return "ZEND_DO_FCALL"; - case ZEND_DO_FCALL_BY_NAME: return "ZEND_DO_FCALL_BY_NAME"; - case ZEND_RETURN: return "ZEND_RETURN"; - case ZEND_RECV: return "ZEND_RECV"; - case ZEND_RECV_INIT: return "ZEND_RECV_INIT"; - case ZEND_SEND_VAL: return "ZEND_SEND_VAL"; - case ZEND_SEND_VAR: return "ZEND_SEND_VAR"; - case ZEND_SEND_REF: return "ZEND_SEND_REF"; - case ZEND_NEW: return "ZEND_NEW"; - case ZEND_INIT_NS_FCALL_BY_NAME: return "ZEND_INIT_NS_FCALL_BY_NAME"; - case ZEND_FREE: return "ZEND_FREE"; - case ZEND_INIT_ARRAY: return "ZEND_INIT_ARRAY"; - case ZEND_ADD_ARRAY_ELEMENT: return "ZEND_ADD_ARRAY_ELEMENT"; - case ZEND_INCLUDE_OR_EVAL: return "ZEND_INCLUDE_OR_EVAL"; - case ZEND_UNSET_VAR: return "ZEND_UNSET_VAR"; - case ZEND_UNSET_DIM: return "ZEND_UNSET_DIM"; - case ZEND_UNSET_OBJ: return "ZEND_UNSET_OBJ"; - case ZEND_FE_RESET: return "ZEND_FE_RESET"; - case ZEND_FE_FETCH: return "ZEND_FE_FETCH"; - case ZEND_EXIT: return "ZEND_EXIT"; - case ZEND_FETCH_R: return "ZEND_FETCH_R"; - case ZEND_FETCH_DIM_R: return "ZEND_FETCH_DIM_R"; - case ZEND_FETCH_OBJ_R: return "ZEND_FETCH_OBJ_R"; - case ZEND_FETCH_W: return "ZEND_FETCH_W"; - case ZEND_FETCH_DIM_W: return "ZEND_FETCH_DIM_W"; - case ZEND_FETCH_OBJ_W: return "ZEND_FETCH_OBJ_W"; - case ZEND_FETCH_RW: return "ZEND_FETCH_RW"; - case ZEND_FETCH_DIM_RW: return "ZEND_FETCH_DIM_RW"; - case ZEND_FETCH_OBJ_RW: return "ZEND_FETCH_OBJ_RW"; - case ZEND_FETCH_IS: return "ZEND_FETCH_IS"; - case ZEND_FETCH_DIM_IS: return "ZEND_FETCH_DIM_IS"; - case ZEND_FETCH_OBJ_IS: return "ZEND_FETCH_OBJ_IS"; - case ZEND_FETCH_FUNC_ARG: return "ZEND_FETCH_FUNC_ARG"; - case ZEND_FETCH_DIM_FUNC_ARG: return "ZEND_FETCH_DIM_FUNC_ARG"; - case ZEND_FETCH_OBJ_FUNC_ARG: return "ZEND_FETCH_OBJ_FUNC_ARG"; - case ZEND_FETCH_UNSET: return "ZEND_FETCH_UNSET"; - case ZEND_FETCH_DIM_UNSET: return "ZEND_FETCH_DIM_UNSET"; - case ZEND_FETCH_OBJ_UNSET: return "ZEND_FETCH_OBJ_UNSET"; - case ZEND_FETCH_DIM_TMP_VAR: return "ZEND_FETCH_DIM_TMP_VAR"; - case ZEND_FETCH_CONSTANT: return "ZEND_FETCH_CONSTANT"; - case ZEND_GOTO: return "ZEND_GOTO"; - case ZEND_EXT_STMT: return "ZEND_EXT_STMT"; - case ZEND_EXT_FCALL_BEGIN: return "ZEND_EXT_FCALL_BEGIN"; - case ZEND_EXT_FCALL_END: return "ZEND_EXT_FCALL_END"; - case ZEND_EXT_NOP: return "ZEND_EXT_NOP"; - case ZEND_TICKS: return "ZEND_TICKS"; - case ZEND_SEND_VAR_NO_REF: return "ZEND_SEND_VAR_NO_REF"; - case ZEND_CATCH: return "ZEND_CATCH"; - case ZEND_THROW: return "ZEND_THROW"; - case ZEND_FETCH_CLASS: return "ZEND_FETCH_CLASS"; - case ZEND_CLONE: return "ZEND_CLONE"; - case ZEND_RETURN_BY_REF: return "ZEND_RETURN_BY_REF"; - case ZEND_INIT_METHOD_CALL: return "ZEND_INIT_METHOD_CALL"; - case ZEND_INIT_STATIC_METHOD_CALL: return "ZEND_INIT_STATIC_METHOD_CALL"; - case ZEND_ISSET_ISEMPTY_VAR: return "ZEND_ISSET_ISEMPTY_VAR"; - case ZEND_ISSET_ISEMPTY_DIM_OBJ: return "ZEND_ISSET_ISEMPTY_DIM_OBJ"; - case ZEND_PRE_INC_OBJ: return "ZEND_PRE_INC_OBJ"; - case ZEND_PRE_DEC_OBJ: return "ZEND_PRE_DEC_OBJ"; - case ZEND_POST_INC_OBJ: return "ZEND_POST_INC_OBJ"; - case ZEND_POST_DEC_OBJ: return "ZEND_POST_DEC_OBJ"; - case ZEND_ASSIGN_OBJ: return "ZEND_ASSIGN_OBJ"; - case ZEND_INSTANCEOF: return "ZEND_INSTANCEOF"; - case ZEND_DECLARE_CLASS: return "ZEND_DECLARE_CLASS"; - case ZEND_DECLARE_INHERITED_CLASS: return "ZEND_DECLARE_INHERITED_CLASS"; - case ZEND_DECLARE_FUNCTION: return "ZEND_DECLARE_FUNCTION"; - case ZEND_RAISE_ABSTRACT_ERROR: return "ZEND_RAISE_ABSTRACT_ERROR"; - case ZEND_DECLARE_CONST: return "ZEND_DECLARE_CONST"; - case ZEND_ADD_INTERFACE: return "ZEND_ADD_INTERFACE"; - case ZEND_DECLARE_INHERITED_CLASS_DELAYED: return "ZEND_DECLARE_INHERITED_CLASS_DELAYED"; - case ZEND_VERIFY_ABSTRACT_CLASS: return "ZEND_VERIFY_ABSTRACT_CLASS"; - case ZEND_ASSIGN_DIM: return "ZEND_ASSIGN_DIM"; - case ZEND_ISSET_ISEMPTY_PROP_OBJ: return "ZEND_ISSET_ISEMPTY_PROP_OBJ"; - case ZEND_HANDLE_EXCEPTION: return "ZEND_HANDLE_EXCEPTION"; - case ZEND_USER_OPCODE: return "ZEND_USER_OPCODE"; -#ifdef ZEND_JMP_SET - case ZEND_JMP_SET: return "ZEND_JMP_SET"; -#endif - case ZEND_DECLARE_LAMBDA_FUNCTION: return "ZEND_DECLARE_LAMBDA_FUNCTION"; -#ifdef ZEND_ADD_TRAIT - case ZEND_ADD_TRAIT: return "ZEND_ADD_TRAIT"; -#endif -#ifdef ZEND_BIND_TRAITS - case ZEND_BIND_TRAITS: return "ZEND_BIND_TRAITS"; -#endif -#ifdef ZEND_SEPARATE - case ZEND_SEPARATE: return "ZEND_SEPARATE"; -#endif -#ifdef ZEND_QM_ASSIGN_VAR - case ZEND_QM_ASSIGN_VAR: return "ZEND_QM_ASSIGN_VAR"; -#endif -#ifdef ZEND_JMP_SET_VAR - case ZEND_JMP_SET_VAR: return "ZEND_JMP_SET_VAR"; -#endif - case ZEND_DISCARD_EXCEPTION: return "ZEND_DISCARD_EXCEPTION"; - case ZEND_YIELD: return "ZEND_YIELD"; - case ZEND_GENERATOR_RETURN: return "ZEND_GENERATOR_RETURN"; -#ifdef ZEND_FAST_CALL - case ZEND_FAST_CALL: return "ZEND_FAST_CALL"; -#endif -#ifdef ZEND_FAST_RET - case ZEND_FAST_RET: return "ZEND_FAST_RET"; -#endif -#ifdef ZEND_RECV_VARIADIC - case ZEND_RECV_VARIADIC: return "ZEND_RECV_VARIADIC"; -#endif - case ZEND_OP_DATA: return "ZEND_OP_DATA"; - - default: return "UNKNOWN"; - } -} /* }}} */ - static void phpdbg_print_opline(zend_execute_data *execute_data TSRMLS_DC) { /* {{{ */ zend_op *opline = execute_data->opline; - printf( - "[OPLINE: %p:%s]\n", opline, phpdbg_decode_opcode(opline->opcode TSRMLS_CC)); + printf("[OPLINE: %p:%s]\n", opline, phpdbg_decode_opcode(opline->opcode)); } /* }}} */ void phpdbg_execute_ex(zend_execute_data *execute_data TSRMLS_DC) /* {{{ */ -- 2.40.0