/* {{{ proto void phpdbg_break([integer type, string expression]) instructs phpdbg to insert a breakpoint at the next opcode */ static PHP_FUNCTION(phpdbg_break) { if (ZEND_NUM_ARGS() > 0) { long type; char *expr = NULL; zend_uint expr_len = 0; phpdbg_param_t param; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls", &type, &expr, &expr_len) == FAILURE) { return; } phpdbg_parse_param(expr, expr_len, ¶m TSRMLS_CC); switch (type) { case METHOD_PARAM: phpdbg_do_break_method(¶m, NULL TSRMLS_CC); break; case FILE_PARAM: phpdbg_do_break_file(¶m, NULL TSRMLS_CC); break; case NUMERIC_PARAM: phpdbg_do_break_lineno(¶m, NULL TSRMLS_CC); break; case STR_PARAM: phpdbg_do_break_func(¶m, NULL TSRMLS_CC); break; default: zend_error( E_WARNING, "unrecognized parameter type %ld", type); } phpdbg_clear_param(¶m TSRMLS_CC); } else if (EG(current_execute_data) && EG(active_op_array)) { zend_ulong opline_num = (EG(current_execute_data)->opline - EG(active_op_array)->opcodes); phpdbg_set_breakpoint_opline_ex( &EG(active_op_array)->opcodes[opline_num+1] TSRMLS_CC); } } /* }}} */
/* {{{ proto void phpdbg_break([integer type, string expression]) instructs phpdbg to insert a breakpoint at the next opcode */ static PHP_FUNCTION(phpdbg_break) { if (ZEND_NUM_ARGS() > 0) { long type = 0; char *expr = NULL; int expr_len = 0; phpdbg_param_t param; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls", &type, &expr, &expr_len) == FAILURE) { return; } phpdbg_parse_param(expr, expr_len, ¶m TSRMLS_CC); phpdbg_do_break(¶m TSRMLS_CC); phpdbg_clear_param(¶m TSRMLS_CC); } else if (EG(current_execute_data) && EG(active_op_array)) { zend_ulong opline_num = (EG(current_execute_data)->opline - EG(active_op_array)->opcodes); phpdbg_set_breakpoint_opline_ex( &EG(active_op_array)->opcodes[opline_num+1] TSRMLS_CC); } } /* }}} */