{'v', 0, "verbose"},
{'s', 0, "step"},
{'b', 0, "boring colours"},
+ {'i', 1, "init"},
{'-', 0, NULL}
}; /* }}} */
INI_DEFAULT("display_errors", "1");
} /* }}} */
-static jmp_buf phpdbg_main;
-
int main(int argc, char **argv) /* {{{ */
{
sapi_module_struct *phpdbg = &phpdbg_sapi_module;
int ini_entries_len;
char *exec;
size_t exec_len;
+ char *init_file;
+ size_t init_file_len;
zend_ulong flags;
char *php_optarg;
int php_optind;
ini_entries_len = 0;
exec = NULL;
exec_len = 0;
+ init_file = NULL;
+ init_file_len = 0;
flags = PHPDBG_DEFAULT_FLAGS;
php_optarg = NULL;
php_optind = 1;
exec = strdup(php_optarg);
}
break;
+
+ case 'i': /* set init file */
+ init_file_len = strlen(php_optarg);
+ if (init_file_len) {
+ init_file = strdup(php_optarg);
+ }
+ break;
case 'v': /* set quietness off */
flags &= ~PHPDBG_IS_QUIET;
zend_activate_modules(TSRMLS_C);
} zend_end_try();
+ /* initialize from file */
+ phpdbg_init(init_file, init_file_len TSRMLS_CC);
+
/* print blurb */
phpdbg_welcome(cleaning TSRMLS_CC);
ZEND_EXTERN_MODULE_GLOBALS(phpdbg);
+void phpdbg_init(char *init_file, size_t init_file_len TSRMLS_DC) /* {{{ */
+{
+ if (init_file) {
+
+ free(init_file);
+ }
+} /* }}} */
+
void phpdbg_welcome(zend_bool cleaning TSRMLS_DC) /* {{{ */
{
/* print blurb */
#define PHPDBG_COMMAND(name) \
int phpdbg_do_##name(const char *expr, size_t expr_len TSRMLS_DC)
+void phpdbg_init(char *init_file, size_t init_file_len TSRMLS_DC);
void phpdbg_welcome(zend_bool cleaning TSRMLS_DC);
int phpdbg_interactive(TSRMLS_D);
void phpdbg_execute_ex(zend_execute_data *execute_data TSRMLS_DC);