From 1051564059d6e8a1a8e802c78a9eb9348327ed3c Mon Sep 17 00:00:00 2001 From: krakjoe Date: Mon, 18 Nov 2013 23:04:20 +0000 Subject: [PATCH] changes to info --- phpdbg_bp.c | 5 +++- phpdbg_info.c | 68 ++++++++++++++++++++++++++------------------------- 2 files changed, 39 insertions(+), 34 deletions(-) diff --git a/phpdbg_bp.c b/phpdbg_bp.c index e69b9fa9b3..235990924f 100644 --- a/phpdbg_bp.c +++ b/phpdbg_bp.c @@ -110,7 +110,7 @@ void phpdbg_set_breakpoint_method(const char* class_name, const char* func_name HashTable class_breaks, *class_table; size_t class_len = strlen(class_name); size_t func_len = strlen(func_name); - + if (zend_hash_find(&PHPDBG_G(bp)[PHPDBG_BREAK_METHOD], class_name, class_len, (void**)&class_table) != SUCCESS) { zend_hash_init(&class_breaks, 8, NULL, phpdbg_class_breaks_dtor, 0); @@ -291,6 +291,9 @@ int phpdbg_find_breakpoint_symbol(zend_function *fbc TSRMLS_DC) /* {{{ */ return FAILURE; } /* }}} */ +/* +* @TODO(anyone) this is case sensitive +*/ int phpdbg_find_breakpoint_method(zend_op_array *ops TSRMLS_DC) /* {{{ */ { HashTable *class_table; diff --git a/phpdbg_info.c b/phpdbg_info.c index 359a783904..f633038307 100644 --- a/phpdbg_info.c +++ b/phpdbg_info.c @@ -81,46 +81,48 @@ PHPDBG_INFO(vars) /* {{{ */ phpdbg_notice("Variables: %d", zend_hash_num_elements(&vars)); - phpdbg_writeln("Address\t\tRefs\tType\t\tName"); + + if (zend_hash_num_elements(&vars)) { + phpdbg_writeln("Address\t\tRefs\tType\t\tVariable"); + for (zend_hash_internal_pointer_reset_ex(&vars, &pos); + zend_hash_get_current_data_ex(&vars, (void**) &data, &pos) == SUCCESS; + zend_hash_move_forward_ex(&vars, &pos)) { + char *var; - for (zend_hash_internal_pointer_reset_ex(&vars, &pos); - zend_hash_get_current_data_ex(&vars, (void**) &data, &pos) == SUCCESS; - zend_hash_move_forward_ex(&vars, &pos)) { - char *var; + zend_hash_get_current_key_ex(&vars, &var, NULL, NULL, 0, &pos); - zend_hash_get_current_key_ex(&vars, &var, NULL, NULL, 0, &pos); - - if (*data) { - phpdbg_write( - "%p\t%d\t", - *data, - Z_REFCOUNT_PP(data)); - - switch (Z_TYPE_PP(data)) { - case IS_STRING: phpdbg_write("(string)\t"); break; - case IS_LONG: phpdbg_write("(integer)\t"); break; - case IS_DOUBLE: phpdbg_write("(float)\t"); break; - case IS_RESOURCE: phpdbg_write("(resource)\t"); break; - case IS_ARRAY: phpdbg_write("(array)\t"); break; - case IS_OBJECT: phpdbg_write("(object)\t"); break; - case IS_NULL: phpdbg_write("(null)\t"); break; - } - - if (Z_TYPE_PP(data) == IS_OBJECT) { - phpdbg_writeln( - "%s$%s", Z_ISREF_PP(data) ? "&": "", var); + if (*data) { phpdbg_write( - "|-----(instanceof)----> (%s)", Z_OBJCE_PP(data)->name); - phpdbg_writeln(EMPTY); + "%p\t%d\t", + *data, + Z_REFCOUNT_PP(data)); + + switch (Z_TYPE_PP(data)) { + case IS_STRING: phpdbg_write("(string)\t"); break; + case IS_LONG: phpdbg_write("(integer)\t"); break; + case IS_DOUBLE: phpdbg_write("(float)\t"); break; + case IS_RESOURCE: phpdbg_write("(resource)\t"); break; + case IS_ARRAY: phpdbg_write("(array)\t"); break; + case IS_OBJECT: phpdbg_write("(object)\t"); break; + case IS_NULL: phpdbg_write("(null)\t"); break; + } + + if (Z_TYPE_PP(data) == IS_OBJECT) { + phpdbg_writeln( + "%s$%s", Z_ISREF_PP(data) ? "&": "", var); + phpdbg_write( + "|-----(instanceof)----> (%s)", Z_OBJCE_PP(data)->name); + phpdbg_writeln(EMPTY); + } else { + phpdbg_write( + "%s$%s", Z_ISREF_PP(data) ? "&": "", var); + } } else { phpdbg_write( - "%s$%s", Z_ISREF_PP(data) ? "&": "", var); + "n/a\tn/a\tn/a\t$%s", var); } - } else { - phpdbg_write( - "n/a\tn/a\tn/a\t$%s", var); + phpdbg_writeln(EMPTY); } - phpdbg_writeln(EMPTY); } zend_hash_destroy(&vars); -- 2.50.1