]> granicus.if.org Git - php/commitdiff
Fixed phpdbg backtrace argument's name missing
authorReeze Xia <reeze@php.net>
Fri, 13 Feb 2015 06:19:29 +0000 (06:19 +0000)
committerReeze Xia <reeze@php.net>
Fri, 13 Feb 2015 06:22:04 +0000 (06:22 +0000)
sapi/phpdbg/phpdbg_frame.c

index a3531f94af77eb0ec21a7c0b02933fa8b829594c..3384a2c9d1d2d672771b96a81cf574df4adec9f2 100644 (file)
@@ -142,11 +142,22 @@ static void phpdbg_dump_prototype(zval *tmp) /* {{{ */
                        }
                        phpdbg_xml("<arg %r");
                        if (m && j < m) {
+                               char *arg_name = NULL;
+
+                               if (arginfo) {
+                                       if (func->type == ZEND_INTERNAL_FUNCTION) {
+                                               arg_name = (char *)((zend_internal_arg_info *)&arginfo[j])->name;
+                                       } else {
+                                               arg_name = arginfo[j].name->val;
+                                       }
+                               }
+
                                if (!is_variadic) {
                                        is_variadic = arginfo ? arginfo[j].is_variadic : 0;
                                }
-                               phpdbg_xml(" variadic=\"%s\" name=\"%s\">", is_variadic ? "variadic" : "", arginfo ? arginfo[j].name : "");
-                               phpdbg_out("%s=%s", arginfo ? arginfo[j].name : "?", is_variadic ? "[": "");
+
+                               phpdbg_xml(" variadic=\"%s\" name=\"%s\">", is_variadic ? "variadic" : "", arg_name ? arg_name : "");
+                               phpdbg_out("%s=%s", arg_name ? arg_name : "?", is_variadic ? "[": "");
 
                        } else {
                                phpdbg_xml(">");