25
25
#include "phpdbg_utils.h"
26
26
#include "phpdbg_opcode.h"
27
27
#include "zend_globals.h"
28
+ #include "ext/standard/php_string.h"
28
29
29
30
ZEND_EXTERN_MODULE_GLOBALS (phpdbg )
30
31
@@ -135,10 +136,12 @@ PHPDBG_API void phpdbg_export_breakpoints_to_string(char **str) /* {{{ */
135
136
136
137
switch (brake -> type ) {
137
138
case PHPDBG_BREAK_FILE : {
139
+ zend_string * filename = php_addcslashes (zend_string_init (((phpdbg_breakfile_t * )brake )-> filename , strlen (((phpdbg_breakfile_t * )brake )-> filename ), 0 ), 1 , "\\\"\n" , 3 );
138
140
phpdbg_asprintf (& new_str ,
139
141
"%sbreak \"%s\":%lu\n" , * str ,
140
- (( phpdbg_breakfile_t * ) brake ) -> filename ,
142
+ ZSTR_VAL ( filename ) ,
141
143
((phpdbg_breakfile_t * )brake )-> line );
144
+ zend_string_release (filename );
142
145
} break ;
143
146
144
147
case PHPDBG_BREAK_SYM : {
@@ -170,10 +173,12 @@ PHPDBG_API void phpdbg_export_breakpoints_to_string(char **str) /* {{{ */
170
173
} break ;
171
174
172
175
case PHPDBG_BREAK_FILE_OPLINE : {
176
+ zend_string * filename = php_addcslashes (zend_string_init (((phpdbg_breakopline_t * )brake )-> class_name , strlen (((phpdbg_breakopline_t * )brake )-> class_name ), 0 ), 1 , "\\\"\n" , 3 );
173
177
phpdbg_asprintf (& new_str ,
174
- "%sbreak %s :#%llu\n" , * str ,
175
- (( phpdbg_breakopline_t * ) brake ) -> class_name ,
178
+ "%sbreak \"%s\" :#%llu\n" , * str ,
179
+ filename ,
176
180
((phpdbg_breakopline_t * )brake )-> opline_num );
181
+ zend_string_release (filename );
177
182
} break ;
178
183
179
184
case PHPDBG_BREAK_OPCODE : {
@@ -199,12 +204,14 @@ PHPDBG_API void phpdbg_export_breakpoints_to_string(char **str) /* {{{ */
199
204
conditional -> code );
200
205
break ;
201
206
202
- case FILE_PARAM :
207
+ case FILE_PARAM : {
208
+ zend_string * filename = php_addcslashes (zend_string_init (conditional -> param .file .name , strlen (conditional -> param .file .name ), 0 ), 1 , "\\\"\n" , 3 );
203
209
phpdbg_asprintf (& new_str ,
204
- "%sbreak at %s :%lu if %s\n" , * str ,
210
+ "%sbreak at \"%s\" :%lu if %s\n" , * str ,
205
211
conditional -> param .file .name , conditional -> param .file .line ,
206
212
conditional -> code );
207
- break ;
213
+ zend_string_release (filename );
214
+ } break ;
208
215
209
216
default : { /* do nothing */ } break ;
210
217
}
0 commit comments