size_t exec_len; /* size of exec */
zend_op_array *ops; /* op_array */
zval *retval; /* return value */
+ size_t bp_count; /* breakpoint count */
int stepping; /* stepping */
int vmret; /* return from last opcode handler execution */
zend_bool has_file_bp; /* file-based breakpoint has been set */
new_break.filename, name_len, &break_files, sizeof(zend_llist),
(void**)&break_files_ptr);
}
+
+ new_break.id = PHPDBG_G(bp_count)++;
zend_llist_add_element(break_files_ptr, &new_break);
} /* }}} */
new_break.symbol, name_len, &break_syms, sizeof(zend_llist),
(void**)&break_sym_ptr);
}
+
+ new_break.id = PHPDBG_G(bp_count)++;
zend_llist_add_element(break_sym_ptr, &new_break);
} /* }}} */
{
size_t name_len = strlen(op_array->filename);
zend_llist *break_list;
+ zend_llist_element *le;
if (zend_hash_find(&PHPDBG_G(bp_files), op_array->filename, name_len,
- (void**)&break_list) == SUCCESS) {
- zend_llist_element *le;
+ (void**)&break_list) == FAILURE) {
+ return FAILURE;
+ }
- for (le = break_list->head; le; le = le->next) {
- phpdbg_breakfile_t *bp = (phpdbg_breakfile_t*) le->data;
+ for (le = break_list->head; le; le = le->next) {
+ const phpdbg_breakfile_t *bp = (phpdbg_breakfile_t*)le->data;
- if (bp->line == (*EG(opline_ptr))->lineno) {
- printf("breakpoint reached!\n");
- return SUCCESS;
- }
+ if (bp->line == (*EG(opline_ptr))->lineno) {
+ printf("Breakpoint #%d at %s:%ld\n", bp->id, bp->filename, bp->line);
+ return SUCCESS;
}
}