mirror of
https://github.com/php/php-src.git
synced 2026-03-30 20:22:36 +02:00
Breakpoints are now persistent over cleans
This commit is contained in:
21
phpdbg.c
21
phpdbg.c
@@ -552,6 +552,7 @@ int main(int argc, char **argv) /* {{{ */
|
||||
long cleaning = 0;
|
||||
int run = 0;
|
||||
int step = 0;
|
||||
char *bp_tmp_file;
|
||||
|
||||
#ifdef ZTS
|
||||
void ***tsrm_ls;
|
||||
@@ -570,6 +571,12 @@ int main(int argc, char **argv) /* {{{ */
|
||||
tsrm_ls = ts_resource(0);
|
||||
#endif
|
||||
|
||||
bp_tmp_file = malloc(L_tmpnam);
|
||||
tmpnam(bp_tmp_file);
|
||||
if (bp_tmp_file == NULL) {
|
||||
phpdbg_error("Unable to create temporary file");
|
||||
}
|
||||
|
||||
phpdbg_main:
|
||||
ini_entries = NULL;
|
||||
ini_entries_len = 0;
|
||||
@@ -772,9 +779,8 @@ phpdbg_main:
|
||||
/* initialize from file */
|
||||
zend_try {
|
||||
PHPDBG_G(flags) |= PHPDBG_IS_INITIALIZING;
|
||||
phpdbg_init(
|
||||
init_file, init_file_len,
|
||||
init_file_default TSRMLS_CC);
|
||||
phpdbg_init(init_file, init_file_len, init_file_default TSRMLS_CC);
|
||||
phpdbg_try_file_init(bp_tmp_file, strlen(bp_tmp_file), 0 TSRMLS_CC);
|
||||
PHPDBG_G(flags) &= ~PHPDBG_IS_INITIALIZING;
|
||||
} zend_catch {
|
||||
PHPDBG_G(flags) &= ~PHPDBG_IS_INITIALIZING;
|
||||
@@ -803,9 +809,14 @@ phpdbg_main:
|
||||
phpdbg_interactive(TSRMLS_C);
|
||||
} zend_catch {
|
||||
if ((PHPDBG_G(flags) & PHPDBG_IS_CLEANING)) {
|
||||
FILE *bp_tmp_fp = fopen(bp_tmp_file, "w");
|
||||
phpdbg_export_breakpoints(bp_tmp_fp TSRMLS_CC);
|
||||
fclose(bp_tmp_fp);
|
||||
cleaning = 1;
|
||||
goto phpdbg_out;
|
||||
} else cleaning = 0;
|
||||
} else {
|
||||
cleaning = 0;
|
||||
}
|
||||
|
||||
if (PHPDBG_G(flags) & PHPDBG_IS_QUITTING) {
|
||||
goto phpdbg_out;
|
||||
@@ -851,6 +862,8 @@ phpdbg_out:
|
||||
goto phpdbg_main;
|
||||
}
|
||||
|
||||
free(bp_tmp_file);
|
||||
|
||||
#ifdef ZTS
|
||||
/* bugggy */
|
||||
/* tsrm_shutdown(); */
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
/* {{{ */
|
||||
void phpdbg_init(char *init_file, size_t init_file_len, zend_bool use_default TSRMLS_DC);
|
||||
void phpdbg_try_file_init(char *init_file, size_t init_file_len, zend_bool free_init TSRMLS_DC);
|
||||
int phpdbg_interactive(TSRMLS_D);
|
||||
int phpdbg_compile(TSRMLS_D);
|
||||
void phpdbg_clean(zend_bool full TSRMLS_DC); /* }}} */
|
||||
|
||||
Reference in New Issue
Block a user