printf("Setting a breakpoint stops execution at a specific stage, the syntax is:\n");
printf("\tfile:line\n");
printf("\tfunction\n");
+ printf("\t0x12345678\n");
printf("For example:\n");
printf("\tphpdbg> break test.php:1\n");
printf("Will break execution on line 1 of test.php\n");
printf("\tphpdbg> break my_function\n");
printf("Will break execution on entry to my_function\n");
+ printf("\tphpdbg> break 0x4c79a40\n");
+ printf("Will break at the opline with the address provided\n");
return SUCCESS;
} /* }}} */
}
}
#endif
+
+ if (PHPDBG_G(has_opline_bp)) {
+ HashPosition position;
+ phpdbg_breakline_t *brake;
+
+ printf("--------------------------------------\n");
+ printf("Opline Break Point Information:\n");
+ for (zend_hash_internal_pointer_reset_ex(&PHPDBG_G(bp_oplines), &position);
+ zend_hash_get_current_data_ex(&PHPDBG_G(bp_oplines), (void**) &brake, &position) == SUCCESS;
+ zend_hash_move_forward_ex(&PHPDBG_G(bp_oplines), &position)) {
+ printf("#%d\t0x%x\n", brake->id, brake->opline);
+ }
+ }
printf("--------------------------------------\n");
return SUCCESS;