@@ -552,6 +552,7 @@ int main(int argc, char **argv) /* {{{ */
552
552
long cleaning = 0 ;
553
553
int run = 0 ;
554
554
int step = 0 ;
555
+ char * bp_tmp_file ;
555
556
556
557
#ifdef ZTS
557
558
void * * * tsrm_ls ;
@@ -570,6 +571,12 @@ int main(int argc, char **argv) /* {{{ */
570
571
tsrm_ls = ts_resource (0 );
571
572
#endif
572
573
574
+ bp_tmp_file = malloc (L_tmpnam );
575
+ tmpnam (bp_tmp_file );
576
+ if (bp_tmp_file == NULL ) {
577
+ phpdbg_error ("Unable to create temporary file" );
578
+ }
579
+
573
580
phpdbg_main :
574
581
ini_entries = NULL ;
575
582
ini_entries_len = 0 ;
@@ -772,9 +779,8 @@ int main(int argc, char **argv) /* {{{ */
772
779
/* initialize from file */
773
780
zend_try {
774
781
PHPDBG_G (flags ) |= PHPDBG_IS_INITIALIZING ;
775
- phpdbg_init (
776
- init_file , init_file_len ,
777
- init_file_default TSRMLS_CC );
782
+ phpdbg_init (init_file , init_file_len , init_file_default TSRMLS_CC );
783
+ phpdbg_try_file_init (bp_tmp_file , strlen (bp_tmp_file ), 0 TSRMLS_CC );
778
784
PHPDBG_G (flags ) &= ~PHPDBG_IS_INITIALIZING ;
779
785
} zend_catch {
780
786
PHPDBG_G (flags ) &= ~PHPDBG_IS_INITIALIZING ;
@@ -803,9 +809,14 @@ int main(int argc, char **argv) /* {{{ */
803
809
phpdbg_interactive (TSRMLS_C );
804
810
} zend_catch {
805
811
if ((PHPDBG_G (flags ) & PHPDBG_IS_CLEANING )) {
812
+ FILE * bp_tmp_fp = fopen (bp_tmp_file , "w" );
813
+ phpdbg_export_breakpoints (bp_tmp_fp TSRMLS_CC );
814
+ fclose (bp_tmp_fp );
806
815
cleaning = 1 ;
807
816
goto phpdbg_out ;
808
- } else cleaning = 0 ;
817
+ } else {
818
+ cleaning = 0 ;
819
+ }
809
820
810
821
if (PHPDBG_G (flags ) & PHPDBG_IS_QUITTING ) {
811
822
goto phpdbg_out ;
@@ -851,6 +862,8 @@ int main(int argc, char **argv) /* {{{ */
851
862
goto phpdbg_main ;
852
863
}
853
864
865
+ free (bp_tmp_file );
866
+
854
867
#ifdef ZTS
855
868
/* bugggy */
856
869
/* tsrm_shutdown(); */
0 commit comments