const phpdbg_command_t phpdbg_help_commands[] = { PHPDBG_COMMAND_HELP_D(aliases, "show alias list", 'a', phpdbg_do_help_aliases), PHPDBG_COMMAND_HELP_D(options, "command line options", 0, NULL), PHPDBG_COMMAND_HELP_D(overview, "help overview", 0, NULL), PHPDBG_COMMAND_HELP_D(phpdbginit, "phpdbginit file format", 0, NULL), PHPDBG_COMMAND_HELP_D(syntax, "syntax overview", 0, NULL), PHPDBG_END_COMMAND }; /* }}} */ /* {{{ pretty_print. Formatting escapes and wrapping text in a string before printing it. */ void pretty_print(char *text TSRMLS_DC) { char *new, *p, *q; const char *prompt_escape = phpdbg_get_prompt(TSRMLS_C); unsigned int prompt_escape_len = strlen(prompt_escape); unsigned int prompt_len = strlen(PHPDBG_G(prompt)[0]); const char *bold_on_escape = PHPDBG_G(flags) & PHPDBG_IS_COLOURED ? "\033[1m" : ""; const char *bold_off_escape = PHPDBG_G(flags) & PHPDBG_IS_COLOURED ? "\033[0m" : ""; unsigned int bold_escape_len = strlen(bold_on_escape); unsigned int term_width = phpdbg_get_terminal_width(TSRMLS_C); unsigned int size = 0; int in_bold = 0; char *last_new_blank = NULL; /* position in new buffer of last blank char */ unsigned int last_blank_count = 0; /* printable char offset of last blank char */ unsigned int line_count = 0; /* number printable chars on current line */
phpdbg_writeln("\t%seval $variable = \"Hello phpdbg :)\"", phpdbg_get_prompt(TSRMLS_C)); phpdbg_writeln("\t%sE $variable = \"Hello phpdbg :)\"", phpdbg_get_prompt(TSRMLS_C)); phpdbg_writeln("\tWill set $variable in the current scope"); phpdbg_writeln(EMPTY); phpdbg_writeln("Note: eval() will always show the result; do not prefix the code with \"return\""); phpdbg_help_footer(); return SUCCESS; } /* }}} */ PHPDBG_HELP(break) /* {{{ */ { phpdbg_help_header(); phpdbg_writeln("Setting a breakpoint stops execution at a specific stage"); phpdbg_writeln(EMPTY); phpdbg_notice("Examples"); phpdbg_writeln("\t%sbreak [file] test.php:1", phpdbg_get_prompt(TSRMLS_C)); phpdbg_writeln("\t%sb [F] test.php:1", phpdbg_get_prompt(TSRMLS_C)); phpdbg_writeln("\tWill break execution on line 1 of test.php"); phpdbg_writeln(EMPTY); phpdbg_writeln("\t%sbreak [func] my_function", phpdbg_get_prompt(TSRMLS_C)); phpdbg_writeln("\t%sb [f] my_function", phpdbg_get_prompt(TSRMLS_C)); phpdbg_writeln("\tWill break execution on entry to my_function"); phpdbg_writeln(EMPTY); phpdbg_writeln("\t%sbreak [method] \\my\\class::method", phpdbg_get_prompt(TSRMLS_C)); phpdbg_writeln("\t%sb [m] \\my\\class::method", phpdbg_get_prompt(TSRMLS_C)); phpdbg_writeln("\tWill break execution on entry to \\my\\class::method"); phpdbg_writeln(EMPTY); phpdbg_writeln("\t%sbreak [address] 0x7ff68f570e08", phpdbg_get_prompt(TSRMLS_C)); phpdbg_writeln("\t%sb [a] 0x7ff68f570e08", phpdbg_get_prompt(TSRMLS_C)); phpdbg_writeln("\tWill break at the opline with the address provided"); phpdbg_writeln(EMPTY);