From: krakjoe Date: Mon, 24 Feb 2014 19:03:55 +0000 (+0000) Subject: export command X-Git-Tag: php-5.6.0beta2~1^2~37^2~20^2~10 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4bab2d2f90022839ffe1262e3e84c3526df4d664;p=php export command --- diff --git a/phpdbg_help.c b/phpdbg_help.c index 47289fb673..941d58ce67 100644 --- a/phpdbg_help.c +++ b/phpdbg_help.c @@ -853,17 +853,21 @@ phpdbg_help_text_t phpdbg_help_text[] = { {"source", "Sourcing a **phpdbginit** script during your debugging session might save some time." CR CR -"The source command can also be used to export breakpoints to a phpdbginit file." CR CR - "**Examples**" CR CR " $P source /my/init" CR -" $P . /my/init" CR +" $P < /my/init" CR " Will execute the phpdbginit file at /my/init" CR CR +}, + +{"export", +"Exporting breakpoints allows you to share, and or save your current debugging session" CR CR + +"**Examples**" CR CR -" $P source export /my/init" CR -" $P . export /my/init" CR -" Will export breakpoints to /my/init in phpdbginit file format" +" $P export /my/exports" CR +" $P > /my/exports" CR +" Will export all breakpoints to /my/exports" CR CR }, {"step", diff --git a/phpdbg_prompt.c b/phpdbg_prompt.c index b55e5d7a59..2cae1b6aa9 100644 --- a/phpdbg_prompt.c +++ b/phpdbg_prompt.c @@ -62,7 +62,8 @@ const phpdbg_command_t phpdbg_prompt_commands[] = { PHPDBG_COMMAND_D(help, "show help menu", 'h', phpdbg_help_commands, "|s"), PHPDBG_COMMAND_D(set, "set phpdbg configuration", 'S', phpdbg_set_commands, "s"), PHPDBG_COMMAND_D(register,"register a function", 'R', NULL, "s"), - PHPDBG_COMMAND_D(source, "execute a phpdbginit", '-', NULL, "s"), + PHPDBG_COMMAND_D(source, "execute a phpdbginit", '<', NULL, "s"), + PHPDBG_COMMAND_D(export, "export breaks to a .phpdbginit script", '>', NULL, "s"), PHPDBG_COMMAND_D(sh, "shell a command", 0, NULL, "i"), PHPDBG_COMMAND_D(quit, "exit phpdbg", 'q', NULL, 0), PHPDBG_END_COMMAND @@ -818,11 +819,29 @@ PHPDBG_COMMAND(source) /* {{{ */ if (VCWD_STAT(param->str, &sb) != -1) { phpdbg_try_file_init(param->str, param->len, 0 TSRMLS_CC); - } else phpdbg_error("Cannot stat %s", param->str); + } else { + phpdbg_error( + "Failed to stat %s, file does not exist", param->str); + } return SUCCESS; } /* }}} */ +PHPDBG_COMMAND(export) /* {{{ */ +{ + FILE *handle = VCWD_FOPEN(param->str, "w+"); + + if (handle) { + phpdbg_export_breakpoints(handle TSRMLS_CC); + fclose(handle); + } else { + phpdbg_error( + "Failed to open or create %s, check path and permissions", param->str); + } + + return SUCCESS; +} /* }}} */ + PHPDBG_COMMAND(register) /* {{{ */ { zend_function *function; diff --git a/phpdbg_prompt.h b/phpdbg_prompt.h index 5590dd4121..1a48acade3 100644 --- a/phpdbg_prompt.h +++ b/phpdbg_prompt.h @@ -50,6 +50,7 @@ PHPDBG_COMMAND(help); PHPDBG_COMMAND(sh); PHPDBG_COMMAND(set); PHPDBG_COMMAND(source); +PHPDBG_COMMAND(export); PHPDBG_COMMAND(register); PHPDBG_COMMAND(quit); /* }}} */