Commit:    fdf26eaa0f7daaecfb05699e6012d140d1cdbaa8
Author:    Felipe Pena <felipe...@gmail.com>         Tue, 12 Nov 2013 11:07:35 
-0200
Parents:   fe7a3ef5781cf92c7dc190c649a90452400782f1
Branches:  PHP-5.6

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=fdf26eaa0f7daaecfb05699e6012d140d1cdbaa8

Log:
- Removed name member to opline breakpoints

Changed paths:
  M  phpdbg.c
  M  phpdbg_bp.c
  M  phpdbg_bp.h
  M  phpdbg_prompt.c
  M  test.php

diff --git a/phpdbg.c b/phpdbg.c
index a83e492..bd756ee 100644
--- a/phpdbg.c
+++ b/phpdbg.c
@@ -58,11 +58,6 @@ static void php_phpdbg_destroy_bp_symbol(void *brake) /* {{{ 
*/
        efree((char*)((phpdbg_breaksymbol_t*)brake)->symbol);
 } /* }}} */
 
-static void php_phpdbg_destroy_bp_opline(void *brake) /* {{{ */
-{
-       free((char*)((phpdbg_breakline_t*)brake)->name);
-} /* }}} */
-
 static void php_phpdbg_destroy_bp_methods(void *brake) /* {{{ */
 {
     zend_hash_destroy((HashTable*)brake);
@@ -72,9 +67,9 @@ static PHP_RINIT_FUNCTION(phpdbg) /* {{{ */
 {
        zend_hash_init(&PHPDBG_G(bp)[PHPDBG_BREAK_FILE],   8, NULL, 
php_phpdbg_destroy_bp_file, 0);
        zend_hash_init(&PHPDBG_G(bp)[PHPDBG_BREAK_SYM], 8, NULL, 
php_phpdbg_destroy_bp_symbol, 0);
-    zend_hash_init(&PHPDBG_G(bp)[PHPDBG_BREAK_OPLINE], 8, NULL, 
php_phpdbg_destroy_bp_opline, 0);
+    zend_hash_init(&PHPDBG_G(bp)[PHPDBG_BREAK_OPLINE], 8, NULL, NULL, 0);
     zend_hash_init(&PHPDBG_G(bp)[PHPDBG_BREAK_METHOD], 8, NULL, 
php_phpdbg_destroy_bp_methods, 0);
-    
+
        return SUCCESS;
 } /* }}} */
 
@@ -84,7 +79,7 @@ static PHP_RSHUTDOWN_FUNCTION(phpdbg) /* {{{ */
     zend_hash_destroy(&PHPDBG_G(bp)[PHPDBG_BREAK_SYM]);
     zend_hash_destroy(&PHPDBG_G(bp)[PHPDBG_BREAK_OPLINE]);
     zend_hash_destroy(&PHPDBG_G(bp)[PHPDBG_BREAK_METHOD]);
-    
+
     if (PHPDBG_G(exec)) {
         efree(PHPDBG_G(exec));
     }
@@ -97,12 +92,12 @@ static PHP_RSHUTDOWN_FUNCTION(phpdbg) /* {{{ */
 } /* }}} */
 
 /* {{{ proto void phpdbg_break(void)
-    instructs phpdbg to insert a breakpoint at the next opcode */ 
+    instructs phpdbg to insert a breakpoint at the next opcode */
 static PHP_FUNCTION(phpdbg_break)
 {
     if (EG(current_execute_data) && EG(active_op_array)) {
         zend_ulong opline_num = (EG(current_execute_data)->opline - 
EG(active_op_array)->opcodes);
-        
+
         phpdbg_set_breakpoint_opline_ex(
             &EG(active_op_array)->opcodes[opline_num+1] TSRMLS_CC);
     }
@@ -206,7 +201,7 @@ static void php_sapi_phpdbg_register_vars(zval 
*track_vars_array TSRMLS_DC) /* {
         if (sapi_module.input_filter(PARSE_SERVER, "SCRIPT_NAME", 
&PHPDBG_G(exec), PHPDBG_G(exec_len), &len TSRMLS_CC)) {
                php_register_variable("SCRIPT_NAME", PHPDBG_G(exec), 
track_vars_array TSRMLS_CC);
         }
-        
+
         if (sapi_module.input_filter(PARSE_SERVER, "SCRIPT_FILENAME", 
&PHPDBG_G(exec), PHPDBG_G(exec_len), &len TSRMLS_CC)) {
                php_register_variable("SCRIPT_FILENAME", PHPDBG_G(exec), 
track_vars_array TSRMLS_CC);
         }
@@ -214,7 +209,7 @@ static void php_sapi_phpdbg_register_vars(zval 
*track_vars_array TSRMLS_DC) /* {
                php_register_variable("PATH_TRANSLATED", PHPDBG_G(exec), 
track_vars_array TSRMLS_CC);
         }
     }
-    
+
     /* any old docroot will doo */
     len = 0U;
     if (sapi_module.input_filter(PARSE_SERVER, "DOCUMENT_ROOT", &docroot, len, 
&len TSRMLS_CC)) {
@@ -302,7 +297,7 @@ int main(int argc, char *argv[]) /* {{{ */
        char *php_optarg = NULL;
     int php_optind = 1;
     int opt;
-    
+
 #ifdef ZTS
        void ***tsrm_ls;
 #endif
@@ -319,7 +314,7 @@ int main(int argc, char *argv[]) /* {{{ */
 
        tsrm_ls = ts_resource(0);
 #endif
-    
+
     while ((opt = php_getopt(argc, argv, OPTIONS, &php_optarg, &php_optind, 0, 
2)) != -1) {
         switch (opt) {
             case 'n':
@@ -363,7 +358,7 @@ int main(int argc, char *argv[]) /* {{{ */
             case 'z':
                 zend_load_extension(php_optarg);
             break;
-            
+
             case 'e': /* set execution context */
                 exec_len = strlen(php_optarg);
                 if (exec_len) {
@@ -374,11 +369,11 @@ int main(int argc, char *argv[]) /* {{{ */
             case 'v': /* set quietness off */
                 flags &= ~PHPDBG_IS_QUIET;
             break;
-            
+
             case 's': /* set stepping on */
                 flags |= PHPDBG_IS_STEPPING;
             break;
-            
+
             case 'b': /* set colours off */
                 flags &= ~PHPDBG_IS_COLOURED;
             break;
@@ -394,7 +389,7 @@ int main(int argc, char *argv[]) /* {{{ */
     phpdbg->executable_location = argv[0];
     phpdbg->phpinfo_as_text = 1;
     phpdbg->php_ini_ignore = 0;
-    
+
     if (ini_entries) {
                ini_entries = realloc(ini_entries, ini_entries_len + 
sizeof(phpdbg_ini_hardcoded));
                memmove(ini_entries + sizeof(phpdbg_ini_hardcoded) - 2, 
ini_entries, ini_entries_len + 1);
@@ -404,9 +399,9 @@ int main(int argc, char *argv[]) /* {{{ */
                memcpy(ini_entries, phpdbg_ini_hardcoded, 
sizeof(phpdbg_ini_hardcoded));
        }
        ini_entries_len += sizeof(phpdbg_ini_hardcoded) - 2;
-    
+
     phpdbg->ini_entries = ini_entries;
-    
+
        if (phpdbg->startup(phpdbg) == SUCCESS) {
                zend_activate(TSRMLS_C);
 
@@ -421,35 +416,35 @@ int main(int argc, char *argv[]) /* {{{ */
         if (exec) { /* set execution context */
             PHPDBG_G(exec) = estrndup(exec, exec_len);
             PHPDBG_G(exec_len) = exec_len;
-            
+
             free(exec);
         }
-        
+
         /* set flags from command line */
         PHPDBG_G(flags) = flags;
-        
+
                zend_try {
                        zend_activate_modules(TSRMLS_C);
                } zend_end_try();
-               
+
                /* print blurb */
         printf(
-            "%sWelcome to phpdbg, the interactive PHP debugger, v%s%s\n", 
+            "%sWelcome to phpdbg, the interactive PHP debugger, v%s%s\n",
             PHPDBG_BOLD_LINE(TSRMLS_C), PHPDBG_VERSION, 
PHPDBG_END_LINE(TSRMLS_C));
         printf(
             "[To get help using phpdbg type \"help\" and press enter\n");
         printf(
-            "%sPlease report bugs to <%s>%s\n", 
+            "%sPlease report bugs to <%s>%s\n",
             PHPDBG_BOLD_LINE(TSRMLS_C), PHPDBG_ISSUES, 
PHPDBG_END_LINE(TSRMLS_C));
 
         do {
                    zend_try {
                        phpdbg_interactive(TSRMLS_C);
                    } zend_catch {
-                
+
                    } zend_end_try();
                } while(!(PHPDBG_G(flags) & PHPDBG_IS_QUITTING));
-               
+
                if (ini_entries) {
                    free(ini_entries);
                }
diff --git a/phpdbg_bp.c b/phpdbg_bp.c
index 8ce2edb..aa7c630 100644
--- a/phpdbg_bp.c
+++ b/phpdbg_bp.c
@@ -68,8 +68,8 @@ void phpdbg_set_breakpoint_file(const char *path, long 
line_num TSRMLS_DC) /* {{
        zend_llist_add_element(break_files_ptr, &new_break);
 
        printf(
-           "%sBreakpoint #%d added at %s:%ld%s\n", 
-           PHPDBG_BOLD_LINE(TSRMLS_C), 
+           "%sBreakpoint #%d added at %s:%ld%s\n",
+           PHPDBG_BOLD_LINE(TSRMLS_C),
            new_break.id, new_break.filename, new_break.line,
            PHPDBG_END_LINE(TSRMLS_C));
 } /* }}} */
@@ -90,13 +90,13 @@ void phpdbg_set_breakpoint_symbol(const char *name 
TSRMLS_DC) /* {{{ */
                        name_len, &new_break, sizeof(phpdbg_breaksymbol_t), 
NULL);
 
            printf(
-               "%sBreakpoint #%d added at %s%s\n", 
-               PHPDBG_BOLD_LINE(TSRMLS_C), 
+               "%sBreakpoint #%d added at %s%s\n",
+               PHPDBG_BOLD_LINE(TSRMLS_C),
                new_break.id, new_break.symbol,
                PHPDBG_END_LINE(TSRMLS_C));
        } else {
            printf(
-               "%sBreakpoint exists at %s%s\n", 
+               "%sBreakpoint exists at %s%s\n",
                PHPDBG_BOLD_LINE(TSRMLS_C), name, PHPDBG_END_LINE(TSRMLS_C));
        }
 } /* }}} */
@@ -112,8 +112,8 @@ void phpdbg_set_breakpoint_method(const char* class_name,
         zend_hash_init(
             &class_breaks, 8, NULL, phpdbg_class_breaks_dtor, 0);
         zend_hash_update(
-            &PHPDBG_G(bp)[PHPDBG_BREAK_METHOD], 
-            class_name, class_len, 
+            &PHPDBG_G(bp)[PHPDBG_BREAK_METHOD],
+            class_name, class_len,
             (void**)&class_breaks, sizeof(HashTable), (void**)&class_table);
     }
 
@@ -130,42 +130,40 @@ void phpdbg_set_breakpoint_method(const char* class_name,
 
         zend_hash_update(class_table, func_name, func_len, &new_break, 
sizeof(phpdbg_breakmethod_t), NULL);
         printf(
-            "%sBreakpoint #%d added at %s::%s%s\n", 
+            "%sBreakpoint #%d added at %s::%s%s\n",
             PHPDBG_BOLD_LINE(TSRMLS_C),
             new_break.id, class_name, func_name,
             PHPDBG_END_LINE(TSRMLS_C));
     } else {
         printf(
-            "%sBreakpoint exists at %s::%s%s\n", 
-             PHPDBG_BOLD_LINE(TSRMLS_C), 
-             class_name, func_name, 
+            "%sBreakpoint exists at %s::%s%s\n",
+             PHPDBG_BOLD_LINE(TSRMLS_C),
+             class_name, func_name,
              PHPDBG_END_LINE(TSRMLS_C));
     }
 } /* }}} */
 
-void phpdbg_set_breakpoint_opline(const char *name TSRMLS_DC) /* {{{ */
+void phpdbg_set_breakpoint_opline(zend_ulong opline TSRMLS_DC) /* {{{ */
 {
-       zend_ulong opline = strtoul(name, 0, 16);
-
        if (!zend_hash_index_exists(&PHPDBG_G(bp)[PHPDBG_BREAK_OPLINE], 
opline)) {
                phpdbg_breakline_t new_break;
 
                PHPDBG_G(flags) |= PHPDBG_HAS_OPLINE_BP;
 
-        new_break.name = strdup(name);
+        new_break.name = NULL;
                new_break.opline = opline;
                new_break.id = PHPDBG_G(bp_count)++;
 
                zend_hash_index_update(&PHPDBG_G(bp)[PHPDBG_BREAK_OPLINE], 
opline, &new_break, sizeof(phpdbg_breakline_t), NULL);
 
-           printf("%sBreakpoint #%d added at %s%s\n", 
-               PHPDBG_BOLD_LINE(TSRMLS_C), 
-               new_break.id, new_break.name,
+           printf("%sBreakpoint #%d added at %#lx%s\n",
+               PHPDBG_BOLD_LINE(TSRMLS_C),
+               new_break.id, new_break.opline,
                PHPDBG_END_LINE(TSRMLS_C));
        } else {
            printf(
-               "%sBreakpoint exists at %s%s\n", 
-               PHPDBG_BOLD_LINE(TSRMLS_C), name, PHPDBG_END_LINE(TSRMLS_C));
+               "%sBreakpoint exists at %#lx%s\n",
+               PHPDBG_BOLD_LINE(TSRMLS_C), opline, PHPDBG_END_LINE(TSRMLS_C));
        }
 } /* }}} */
 
@@ -176,18 +174,15 @@ void phpdbg_set_breakpoint_opline_ex(phpdbg_opline_ptr_t 
opline TSRMLS_DC) /* {{
 
                PHPDBG_G(flags) |= PHPDBG_HAS_OPLINE_BP;
 
-        asprintf(
-            (char**)&new_break.name, "%p", (zend_op*) opline);
-
                new_break.opline = (zend_ulong) opline;
                new_break.id = PHPDBG_G(bp_count)++;
 
                zend_hash_index_update(&PHPDBG_G(bp)[PHPDBG_BREAK_OPLINE], 
(zend_ulong) opline, &new_break, sizeof(phpdbg_breakline_t), NULL);
 
            printf(
-               "%sBreakpoint #%d added at %p%s\n", 
-               PHPDBG_BOLD_LINE(TSRMLS_C), 
-               new_break.id, (zend_op*) new_break.opline,
+               "%sBreakpoint #%d added at %#lx%s\n",
+               PHPDBG_BOLD_LINE(TSRMLS_C),
+               new_break.id, new_break.opline,
                PHPDBG_END_LINE(TSRMLS_C));
        }
 } /* }}} */
@@ -207,8 +202,8 @@ int phpdbg_find_breakpoint_file(zend_op_array *op_array 
TSRMLS_DC) /* {{{ */
                const phpdbg_breakfile_t *bp = (phpdbg_breakfile_t*)le->data;
 
                if (bp->line == (*EG(opline_ptr))->lineno) {
-                       printf("%sBreakpoint #%d at %s:%ld%s\n", 
-                       PHPDBG_BOLD_LINE(TSRMLS_C), 
+                       printf("%sBreakpoint #%d at %s:%ld%s\n",
+                       PHPDBG_BOLD_LINE(TSRMLS_C),
                        bp->id, bp->filename, bp->line,
                        PHPDBG_END_LINE(TSRMLS_C));
                        return SUCCESS;
@@ -244,7 +239,7 @@ int phpdbg_find_breakpoint_symbol(zend_function *fbc 
TSRMLS_DC) /* {{{ */
 
        if (zend_hash_find(&PHPDBG_G(bp)[PHPDBG_BREAK_SYM], fname, 
strlen(fname),
                (void**)&bp) == SUCCESS) {
-               printf("%sBreakpoint #%d in %s() at %s:%u%s\n", 
+               printf("%sBreakpoint #%d in %s() at %s:%u%s\n",
                    PHPDBG_BOLD_LINE(TSRMLS_C),
                    bp->id, bp->symbol,
                        zend_get_executed_filename(TSRMLS_C),
@@ -261,7 +256,7 @@ int phpdbg_find_breakpoint_method(zend_op_array *ops 
TSRMLS_DC) /* {{{ */
        HashTable *class_table;
        phpdbg_breakmethod_t *bp;
 
-       if (zend_hash_find(&PHPDBG_G(bp)[PHPDBG_BREAK_METHOD], 
ops->scope->name, ops->scope->name_length, 
+       if (zend_hash_find(&PHPDBG_G(bp)[PHPDBG_BREAK_METHOD], 
ops->scope->name, ops->scope->name_length,
                (void**)&class_table) == SUCCESS) {
                if (zend_hash_find(
                        class_table,
@@ -269,7 +264,7 @@ int phpdbg_find_breakpoint_method(zend_op_array *ops 
TSRMLS_DC) /* {{{ */
                        strlen(ops->function_name), (void**)&bp) == SUCCESS) {
 
                    printf(
-                       "%sBreakpoint #%d in %s::%s() at %s:%u%s\n", 
+                       "%sBreakpoint #%d in %s::%s() at %s:%u%s\n",
                        PHPDBG_BOLD_LINE(TSRMLS_C),
                        bp->id, bp->class_name, bp->func_name,
                            zend_get_executed_filename(TSRMLS_C),
@@ -288,9 +283,9 @@ int phpdbg_find_breakpoint_opline(phpdbg_opline_ptr_t 
opline TSRMLS_DC) /* {{{ *
 
        if (zend_hash_index_find(&PHPDBG_G(bp)[PHPDBG_BREAK_OPLINE], 
(zend_ulong) opline,
                (void**)&bp) == SUCCESS) {
-               printf("%sBreakpoint #%d in %s at %s:%u%s\n", 
+               printf("%sBreakpoint #%d in %#lx at %s:%u%s\n",
                    PHPDBG_BOLD_LINE(TSRMLS_C),
-                   bp->id, bp->name,
+                   bp->id, bp->opline,
                        zend_get_executed_filename(TSRMLS_C),
                        zend_get_executed_lineno(TSRMLS_C),
                        PHPDBG_END_LINE(TSRMLS_C));
@@ -307,7 +302,7 @@ void phpdbg_clear_breakpoints(TSRMLS_D) /* {{{ */
     zend_hash_clean(&PHPDBG_G(bp)[PHPDBG_BREAK_SYM]);
     zend_hash_clean(&PHPDBG_G(bp)[PHPDBG_BREAK_OPLINE]);
     zend_hash_clean(&PHPDBG_G(bp)[PHPDBG_BREAK_METHOD]);
-    
+
     PHPDBG_G(flags) &= ~PHPDBG_BP_MASK;
 
     PHPDBG_G(bp_count) = 0;
diff --git a/phpdbg_bp.h b/phpdbg_bp.h
index 3eaa6e6..7636d8b 100644
--- a/phpdbg_bp.h
+++ b/phpdbg_bp.h
@@ -63,7 +63,7 @@ typedef struct _phpdbg_breakline_t {
 void phpdbg_set_breakpoint_file(const char*, long TSRMLS_DC);
 void phpdbg_set_breakpoint_symbol(const char* TSRMLS_DC);
 void phpdbg_set_breakpoint_method(const char*, size_t, const char*, size_t 
TSRMLS_DC);
-void phpdbg_set_breakpoint_opline(const char* TSRMLS_DC);
+void phpdbg_set_breakpoint_opline(zend_ulong TSRMLS_DC);
 void phpdbg_set_breakpoint_opline_ex(phpdbg_opline_ptr_t TSRMLS_DC);
 
 int phpdbg_find_breakpoint_file(zend_op_array* TSRMLS_DC);
diff --git a/phpdbg_prompt.c b/phpdbg_prompt.c
index 3040b80..54be3aa 100644
--- a/phpdbg_prompt.c
+++ b/phpdbg_prompt.c
@@ -383,7 +383,9 @@ static PHPDBG_COMMAND(break) /* {{{ */
                }
        } else {
                if (phpdbg_is_addr(expr)) {
-                       phpdbg_set_breakpoint_opline(expr TSRMLS_CC);
+                       zend_ulong opline = strtoul(expr, 0, 16);
+
+                       phpdbg_set_breakpoint_opline(opline TSRMLS_CC);
                } else if (phpdbg_is_numeric(expr)) {
                        const char *filename = 
zend_get_executed_filename(TSRMLS_C);
                        long line_num = strtol(expr, NULL, 0);
diff --git a/test.php b/test.php
index 457e487..06e855b 100644
--- a/test.php
+++ b/test.php
@@ -13,6 +13,6 @@ function test2() {
 
 $my = new my();
 var_dump($my->method());
-
+phpdbg_break();
 return true;
 ?>
-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to