]> granicus.if.org Git - php/commitdiff
Merge branch 'master' of https://github.com/krakjoe/phpdbg
authorkrakjoe <joe.watkins@live.co.uk>
Sun, 17 Nov 2013 18:57:34 +0000 (18:57 +0000)
committerkrakjoe <joe.watkins@live.co.uk>
Sun, 17 Nov 2013 18:57:34 +0000 (18:57 +0000)
1  2 
phpdbg_info.c
phpdbg_info.h

diff --cc phpdbg_info.c
index 794abb4361e7949953d31eb24e25f311c185c91a,057859a1ad985b02fc69d73ec99ce4f6fe9a5dff..0b7253637994b133a8c8dc36a143c75449542008
@@@ -99,46 -140,6 +140,44 @@@ PHPDBG_INFO(classes) /* {{{ *
        }
  
        zend_hash_destroy(&classes);
-       
        return SUCCESS;
  } /* }}} */
 +
 +PHPDBG_INFO(funcs) /* {{{ */
 +{
 +    HashPosition position;
 +      zend_function *zf, **pzf;
 +      HashTable functions;
 +      
 +      zend_hash_init(&functions, 8, NULL, NULL, 0);
 +
 +      for (zend_hash_internal_pointer_reset_ex(EG(function_table), &position);        
 +              zend_hash_get_current_data_ex(EG(function_table), (void**)&zf, &position) == SUCCESS;
 +              zend_hash_move_forward_ex(EG(function_table), &position)) {
 +
 +        if (zf->type == ZEND_USER_FUNCTION) {
 +              zend_hash_next_index_insert(
 +                      &functions, (void**) &zf, sizeof(zend_function), NULL);
 +        }
 +      }
 +      
 +      phpdbg_notice("User Functions (%d)",
 +              zend_hash_num_elements(&functions));
 +
 +      for (zend_hash_internal_pointer_reset_ex(&functions, &position);        
 +              zend_hash_get_current_data_ex(&functions, (void**)&pzf, &position) == SUCCESS;
 +              zend_hash_move_forward_ex(&functions, &position)) {
 +              zend_op_array *op_array = &((*pzf)->op_array);
 +              
 +              phpdbg_writeln(
 +                      "|-------- %s in %s on line %d",
 +                      op_array->function_name ? op_array->function_name : "{main}",
 +                      op_array->filename ? op_array->filename : "(no source code)",
 +                      op_array->line_start);
 +      }
 +
 +      zend_hash_destroy(&functions);
 +      
 +      return SUCCESS;
 +} /* }}} */
diff --cc phpdbg_info.h
index 971008d74448043ffc0117875414b574f7553c43,583627674b37aede25bef1c0937db79ea071aa6e..87da3ce0ddd6858afd5752649a5631b30dc610c3
  
  PHPDBG_INFO(files);
  PHPDBG_INFO(classes);
 +PHPDBG_INFO(funcs);
+ PHPDBG_INFO(error);
+ PHPDBG_INFO(vars);
  
  static const phpdbg_command_t phpdbg_info_commands[] = {
-     PHPDBG_INFO_EX_D(files,     "lists included files", 'F'),
-     PHPDBG_INFO_EX_D(classes,   "lists loaded user classes", 'c'),
-     PHPDBG_INFO_EX_D(funcs,   "lists loaded user functions", 'f'),
+     PHPDBG_INFO_EX_D(files,     "lists included files",  'F'),
+     PHPDBG_INFO_EX_D(classes,   "lists loaded classes",  'c'),
++    PHPDBG_INFO_EX_D(funcs,           "lists loaded classes",  'f'),
+     PHPDBG_INFO_EX_D(error,     "show the last error",   'e'),
+     PHPDBG_INFO_EX_D(vars,      "show active variables", 'v'),
      PHPDBG_END_COMAND
  };