@@ -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 ;
@@ -571,6 +572,13 @@ int main(int argc, char **argv) /* {{{ */
571
572
#endif
572
573
573
574
phpdbg_main :
575
+ if (!cleaning ) {
576
+ bp_tmp_file = malloc (L_tmpnam );
577
+ tmpnam (bp_tmp_file );
578
+ if (bp_tmp_file == NULL ) {
579
+ phpdbg_error ("Unable to create temporary file" );
580
+ }
581
+ }
574
582
ini_entries = NULL ;
575
583
ini_entries_len = 0 ;
576
584
ini_ignore = 0 ;
@@ -772,9 +780,8 @@ int main(int argc, char **argv) /* {{{ */
772
780
/* initialize from file */
773
781
zend_try {
774
782
PHPDBG_G (flags ) |= PHPDBG_IS_INITIALIZING ;
775
- phpdbg_init (
776
- init_file , init_file_len ,
777
- init_file_default TSRMLS_CC );
783
+ phpdbg_init (init_file , init_file_len , init_file_default TSRMLS_CC );
784
+ phpdbg_try_file_init (bp_tmp_file , strlen (bp_tmp_file ), 0 TSRMLS_CC );
778
785
PHPDBG_G (flags ) &= ~PHPDBG_IS_INITIALIZING ;
779
786
} zend_catch {
780
787
PHPDBG_G (flags ) &= ~PHPDBG_IS_INITIALIZING ;
@@ -803,9 +810,14 @@ int main(int argc, char **argv) /* {{{ */
803
810
phpdbg_interactive (TSRMLS_C );
804
811
} zend_catch {
805
812
if ((PHPDBG_G (flags ) & PHPDBG_IS_CLEANING )) {
813
+ FILE * bp_tmp_fp = fopen (bp_tmp_file , "w" );
814
+ phpdbg_export_breakpoints (bp_tmp_fp TSRMLS_CC );
815
+ fclose (bp_tmp_fp );
806
816
cleaning = 1 ;
807
817
goto phpdbg_out ;
808
- } else cleaning = 0 ;
818
+ } else {
819
+ cleaning = 0 ;
820
+ }
809
821
810
822
if (PHPDBG_G (flags ) & PHPDBG_IS_QUITTING ) {
811
823
goto phpdbg_out ;
@@ -855,6 +867,8 @@ int main(int argc, char **argv) /* {{{ */
855
867
/* bugggy */
856
868
/* tsrm_shutdown(); */
857
869
#endif
870
+
871
+ free (bp_tmp_file );
858
872
859
873
return 0 ;
860
874
} /* }}} */
0 commit comments