Commit: 8c91727484c6ed6af80fbe13f9076958450fe19b Author: krakjoe <joe.watk...@live.co.uk> Tue, 12 Nov 2013 02:35:07 +0000 Parents: c7b51537a03734a3e0a8fbb9100840cd64a66d37 6aad2ee42c355934190a46f55b7f6633f9bea407 Branches: PHP-5.6
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=8c91727484c6ed6af80fbe13f9076958450fe19b Log: Merge branch 'master' of https://github.com/krakjoe/phpdbg Changed paths: MM phpdbg_list.c MM phpdbg_list.h MM phpdbg_prompt.c Diff: diff --cc phpdbg_list.c index f4209e1,d5e07d4..3bfa214 --- a/phpdbg_list.c +++ b/phpdbg_list.c @@@ -74,3 -73,17 +74,17 @@@ void phpdbg_list_file(const char *filen out: close(fd); } /* }}} */ + -void phpdbg_list_function(const zend_function *fbc) /* {{{ */ ++void phpdbg_list_function(const zend_function *fbc TSRMLS_DC) /* {{{ */ + { + const zend_op_array *ops; + + if (fbc->type != ZEND_USER_FUNCTION) { + return; + } + + ops = (zend_op_array*)fbc; + + phpdbg_list_file(ops->filename, - ops->line_end - ops->line_start + 1, ops->line_start); ++ ops->line_end - ops->line_start + 1, ops->line_start TSRMLS_CC); + } /* }}} */ diff --cc phpdbg_list.h index 883f991,95cc06e..2a25875 --- a/phpdbg_list.h +++ b/phpdbg_list.h @@@ -20,6 -20,9 +20,7 @@@ #ifndef PHPDBG_LIST_H #define PHPDBG_LIST_H -#include "zend_compile.h" - -void phpdbg_list_file(const char*, long, long); -void phpdbg_list_function(const zend_function*); ++void phpdbg_list_function(const zend_function* TSRMLS_DC); +void phpdbg_list_file(const char*, long, long TSRMLS_DC); #endif /* PHPDBG_LIST_H */ diff --cc phpdbg_prompt.c index c30d155,f7ec941..11cc914 --- a/phpdbg_prompt.c +++ b/phpdbg_prompt.c @@@ -497,18 -498,32 +498,32 @@@ static PHPDBG_COMMAND(quiet) { /* {{{ * static PHPDBG_COMMAND(list) /* {{{ */ { - long offset = 0, count = strtol(expr, NULL, 0); - const char *filename = PHPDBG_G(exec); - - if (zend_is_executing(TSRMLS_C)) { - filename = zend_get_executed_filename(TSRMLS_C); - offset = zend_get_executed_lineno(TSRMLS_C); - } else if (!filename) { - printf("[No file to list]\n"); - return SUCCESS; - } + if (phpdbg_is_numeric(expr)) { + long offset = 0, count = strtol(expr, NULL, 0); + const char *filename = PHPDBG_G(exec); + + if (zend_is_executing(TSRMLS_C)) { + filename = zend_get_executed_filename(TSRMLS_C); + offset = zend_get_executed_lineno(TSRMLS_C); + } else if (!filename) { + printf("[No file to list]\n"); + return SUCCESS; + } - phpdbg_list_file(filename, count, offset TSRMLS_CC); - phpdbg_list_file(filename, count, offset); ++ phpdbg_list_file(filename, count, offset TSRMLS_CC); + } else { + zend_function* fbc; + + if (!EG(function_table)) { + printf("[No function table loaded]\n"); + return SUCCESS; + } + + if (zend_hash_find(EG(function_table), expr, strlen(expr)+1, + (void**)&fbc) == SUCCESS) { - phpdbg_list_function(fbc); ++ phpdbg_list_function(fbc TSRMLS_CC); + } + } return SUCCESS; } /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php