Several fixes and cleanups on opline num support

This commit is contained in:
Bob Weinand 2013-12-01 15:58:59 +01:00
parent 2e7c695c05
commit 25f2d4eca1
4 changed files with 145 additions and 62 deletions

View file

@ -88,37 +88,41 @@
#define PHPDBG_BREAK_OPCODE 5
#define PHPDBG_BREAK_FUNCTION_OPLINE 6
#define PHPDBG_BREAK_METHOD_OPLINE 7
#define PHPDBG_BREAK_TABLES 8/* }}} */
#define PHPDBG_BREAK_FILE_OPLINE 8
#define PHPDBG_BREAK_TABLES 9 /* }}} */
/* {{{ flags */
#define PHPDBG_HAS_FILE_BP (1<<1)
#define PHPDBG_HAS_SYM_BP (1<<2)
#define PHPDBG_HAS_OPLINE_BP (1<<3)
#define PHPDBG_HAS_METHOD_BP (1<<4)
#define PHPDBG_HAS_COND_BP (1<<5)
#define PHPDBG_HAS_OPCODE_BP (1<<6)
#define PHPDBG_BP_MASK (PHPDBG_HAS_FILE_BP|PHPDBG_HAS_SYM_BP|PHPDBG_HAS_METHOD_BP|PHPDBG_HAS_OPLINE_BP|PHPDBG_HAS_COND_BP|PHPDBG_HAS_OPCODE_BP)
#define PHPDBG_HAS_FILE_BP (1<<1)
#define PHPDBG_HAS_SYM_BP (1<<2)
#define PHPDBG_HAS_OPLINE_BP (1<<3)
#define PHPDBG_HAS_METHOD_BP (1<<4)
#define PHPDBG_HAS_COND_BP (1<<5)
#define PHPDBG_HAS_OPCODE_BP (1<<6)
#define PHPDBG_HAS_FUNCTION_OPLINE_BP (1<<7)
#define PHPDBG_HAS_METHOD_OPLINE_BP (1<<8)
#define PHPDBG_HAS_FILE_OPLINE_BP (1<<9)
#define PHPDBG_BP_MASK (PHPDBG_HAS_FILE_BP|PHPDBG_HAS_SYM_BP|PHPDBG_HAS_METHOD_BP|PHPDBG_HAS_OPLINE_BP|PHPDBG_HAS_COND_BP|PHPDBG_HAS_OPCODE_BP|PHPDBG_HAS_FUNCTION_OPLINE_BP|PHPDBG_HAS_METHOD_OPLINE_BP|PHPDBG_HAS_FILE_OPLINE_BP)
#define PHPDBG_IN_COND_BP (1<<7)
#define PHPDBG_IN_EVAL (1<<8)
#define PHPDBG_IN_COND_BP (1<<8)
#define PHPDBG_IN_EVAL (1<<9)
#define PHPDBG_IS_STEPPING (1<<9)
#define PHPDBG_IS_QUIET (1<<10)
#define PHPDBG_IS_QUITTING (1<<11)
#define PHPDBG_IS_COLOURED (1<<12)
#define PHPDBG_IS_CLEANING (1<<13)
#define PHPDBG_IS_STEPPING (1<<10)
#define PHPDBG_IS_QUIET (1<<11)
#define PHPDBG_IS_QUITTING (1<<12)
#define PHPDBG_IS_COLOURED (1<<13)
#define PHPDBG_IS_CLEANING (1<<14)
#define PHPDBG_IN_UNTIL (1<<14)
#define PHPDBG_IN_FINISH (1<<15)
#define PHPDBG_IN_LEAVE (1<<16)
#define PHPDBG_SEEK_MASK (PHPDBG_IN_UNTIL|PHPDBG_IN_FINISH|PHPDBG_IN_LEAVE)
#define PHPDBG_IN_UNTIL (1<<15)
#define PHPDBG_IN_FINISH (1<<16)
#define PHPDBG_IN_LEAVE (1<<17)
#define PHPDBG_SEEK_MASK (PHPDBG_IN_UNTIL|PHPDBG_IN_FINISH|PHPDBG_IN_LEAVE)
#define PHPDBG_IS_REGISTERED (1<<17)
#define PHPDBG_IS_STEPONEVAL (1<<18)
#define PHPDBG_IS_INITIALIZING (1<<19)
#define PHPDBG_IS_SIGNALED (1<<20)
#define PHPDBG_IS_INTERACTIVE (1<<21)
#define PHPDBG_IS_BP_ENABLED (1<<22)
#define PHPDBG_IS_REGISTERED (1<<18)
#define PHPDBG_IS_STEPONEVAL (1<<19)
#define PHPDBG_IS_INITIALIZING (1<<20)
#define PHPDBG_IS_SIGNALED (1<<21)
#define PHPDBG_IS_INTERACTIVE (1<<22)
#define PHPDBG_IS_BP_ENABLED (1<<23)
#ifndef _WIN32
# define PHPDBG_DEFAULT_FLAGS (PHPDBG_IS_QUIET|PHPDBG_IS_COLOURED|PHPDBG_IS_BP_ENABLED)
@ -144,8 +148,14 @@
/* {{{ structs */
typedef union _phpdbg_btree phpdbg_btree;
union _phpdbg_btree {
phpdbg_btree *branches[2];
zend_op_array *op_array;
phpdbg_btree *branches[2];
struct {
char *func_name;
zend_uint func_len;
char *class_name;
zend_uint class_len;
zend_uint last;
} info;
};
ZEND_BEGIN_MODULE_GLOBALS(phpdbg)