[xdebug-dev] xdebug xdebug/php_xdebug.h xdebug/xdebug.c xdebug/xdebug_superglobals.c xdebug/xdebug_superglobals.h xdebug/xdebug_var.c xdebug/xdebug_var.h xdebug/tests/bug00032-ze22.phpt xdebug/tests/bug00089.phpt xdebug/tests/bug00178.phpt xdebug/tests/local_vars_in_error.phpt xdebug/tests/xdebug_var_dump.phpt - Pimped the stack trace output.

From: Derick Rethans <derick[@]derickrethans.nl>
Date: Fri, 6 Oct 2006 16:23:04 +0200

Date: Fri Oct 6 16:23:04 CEST 2006
User: Derick Rethans
Directory: xdebug

Log Message:
[8.00]
- Pimped the stack trace output.
- Removed unused hooks for xdebug_set_error_handler().

Modified files:
           xdebug/php_xdebug.h (version: 1.116)
           xdebug/xdebug.c (version: 1.350)
           xdebug/xdebug_superglobals.c (version: 1.19)
           xdebug/xdebug_superglobals.h (version: 1.6)
           xdebug/xdebug_var.c (version: 1.74)
           xdebug/xdebug_var.h (version: 1.25)
           xdebug/tests/bug00032-ze22.phpt (version: 1.3)
           xdebug/tests/bug00089.phpt (version: 1.4)
           xdebug/tests/bug00178.phpt (version: 1.2)
           xdebug/tests/local_vars_in_error.phpt (version: 1.10)
           xdebug/tests/xdebug_var_dump.phpt (version: 1.5)

[FILE: /xdebug/php_xdebug.h]

===================================================================
RCS file: cvstemp,v
retrieving revision 1.115
retrieving revision 1.116
diff -u -r1.115 -r1.116
--- xdebug/php_xdebug.h:1.115 Fri Sep 29 08:07:16 2006 GMT
+++ xdebug/php_xdebug.h Fri Oct 06 12:23:03 2006 GMT
@@ -105,7 +105,6 @@
 
 /* misc functions */
 PHP_FUNCTION(xdebug_dump_superglobals);
-PHP_FUNCTION(xdebug_set_error_handler);
 #if HAVE_PHP_MEMORY_USAGE
 PHP_FUNCTION(xdebug_memory_usage);
 PHP_FUNCTION(xdebug_peak_memory_usage);
@@ -129,7 +128,6 @@
         zend_bool show_local_vars;
         zend_bool show_mem_delta;
         char *manual_url;
- char *error_handler;
         double start_time;
         HashTable *active_symbol_table;
         unsigned int prev_memory;

[FILE: /xdebug/xdebug.c]

===================================================================
RCS file: cvstemp,v
retrieving revision 1.349
retrieving revision 1.350
diff -u -r1.349 -r1.350
--- xdebug/xdebug.c:1.349 Tue Oct 03 17:13:14 2006 GMT
+++ xdebug/xdebug.c Fri Oct 06 12:23:03 2006 GMT
@@ -337,7 +337,6 @@
         xg->do_trace = 0;
         xg->trace_file = NULL;
         xg->do_code_coverage = 0;
- xg->error_handler = NULL;
         xg->breakpoint_count = 0;
         xg->ide_key = NULL;
 
@@ -702,7 +701,6 @@
         XG(tracefile_name) = NULL;
         XG(profile_file) = NULL;
         XG(profile_filename) = NULL;
- XG(error_handler) = NULL;
         XG(prev_memory) = 0;
         XG(function_count) = 0;
         XG(active_symbol_table) = NULL;
@@ -725,6 +723,7 @@
 #endif
         }
         XG(remote_enabled) = 0;
+ XG(remote_log) = NULL;
         XG(profiler_enabled) = 0;
         XG(breakpoints_allowed) = 1;
         if (XG(auto_trace) && XG(trace_output_dir) && strlen(XG(trace_output_dir))) {
@@ -785,10 +784,6 @@
                 xdfree(XG(profile_filename));
         }
 
- if (XG(error_handler)) {
- efree(XG(error_handler));
- }
-
         if (XG(ide_key)) {
                 xdfree(XG(ide_key));
                 XG(ide_key) = NULL;
@@ -1504,6 +1499,45 @@
         XG(level)--;
 }
 
+static char* text_formats[10] = {
+ "\n",
+ "%s: %s in %s on line %d\n",
+ "\nCall Stack:\n",
+#if HAVE_PHP_MEMORY_USAGE
+ "%10.4f %10ld %3d. %s(",
+#else
+ "%10.4f %3d. %s(",
+#endif
+ "'%s'",
+ ") %s:%d\n",
+ "\n\nVariables in local scope (#%d):\n",
+ "\n",
+ " $%s = %s\n",
+ " $%s = *uninitialized*\n"
+};
+
+static char* html_formats[10] = {
+ "<br />\n<font size='1'><table border='1' cellspacing='0' cellpadding='1'>\n",
+ "<tr><th align='left' bgcolor='#f57900' colspan=\"5\"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> %s: %s in %s on line <i>%d</i></th></tr>\n",
+#if HAVE_PHP_MEMORY_USAGE
+ "<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>\n<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>\n",
+ "<tr><td bgcolor='#eeeeec' align='center'>%d</td><td bgcolor='#eeeeec' align='center'>%.4f</td><td bgcolor='#eeeeec' align='right'>%ld</td><td bgcolor='#eeeeec'>%s(",
+#else
+ "<tr><th align='left' bgcolor='#e9b96e' colspan='4'>Call Stack</th></tr>\n<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>\n",
+ "<tr><td bgcolor='#eeeeec' align='center'>%d</td><td bgcolor='#eeeeec' align='center'>%.4f</td><td bgcolor='#eeeeec'>%s(",
+#endif
+ "<font color='#00bb00'>'%s'</font>",
+ ")</td><td bgcolor='#eeeeec'>%s<b>:</b>%d</td></tr>\n",
+#if HAVE_PHP_MEMORY_USAGE
+ "<tr><th align='left' colspan='5' bgcolor='#e9b96e'>Variables in local scope (#%d)</th></tr>\n",
+#else
+ "<tr><th align='left' colspan='4' bgcolor='#e9b96e'>Variables in local scope (#%d)</th></tr>\n",
+#endif
+ "</table></font>\n",
+ "<tr><td colspan='2' align='right' bgcolor='#eeeeec' valign='top'><pre>$%s&nbsp;=</pre></td><td colspan='4' bgcolor='#eeeeec'>%s</td></tr>\n",
+ "<tr><td bgcolor='#eeeeec'>$%s</td><td colspan='4' bgcolor='#eeeeec' colspan='2'><i>Undefined</i></td></tr>\n"
+};
+
 static void dump_used_var_with_contents(void *htmlq, xdebug_hash_element* he)
 {
         int html = *(int *)htmlq;
@@ -1512,6 +1546,7 @@
         char *contents;
         char *name = (char*) he->ptr;
         HashTable *tmp_ht;
+ char **formats;
         TSRMLS_FETCH();
 
         if (!he->ptr) {
@@ -1531,83 +1566,117 @@
         if (!zvar) {
                 return;
         }
+
         if (html) {
+ formats = html_formats;
                 contents = get_zval_value_fancy(NULL, zvar, &len, 0, NULL TSRMLS_CC);
- if (contents) {
- php_printf("<tr><td colspan='2' align='right' bgcolor='#ccffcc'>$%s = </td><td bgcolor='#ccffcc'>", name);
- PHPWRITE(contents, len);
- php_printf("</td></tr>\n");
- } else {
- php_printf("<tr><td bgcolor='#ccffcc'>$%s</td><td bgcolor='#ccffcc' colspan='2'><i>Undefined</i></td></tr>\n", name);
- }
         } else {
+ formats = text_formats;
                 contents = get_zval_value(zvar, 0, NULL);
- if (contents) {
- php_printf(" $%s = %s\n", name, contents);
- } else {
- php_printf(" $%s = *uninitialized*\n", name);
- }
         }
+
+ if (contents) {
+ php_printf(formats[8], name, contents);
+ } else {
+ php_printf(formats[9], name);
+ }
+
         xdfree(contents);
 }
 
+static void log_stack(const char *error_type_str, char *buffer, const char *error_filename, const int error_lineno TSRMLS_DC)
+{
+ int is_cli = (strcmp("cli", sapi_module.name) == 0);
+ xdebug_llist_element *le;
+ function_stack_entry *i;
+
+ if (PG(log_errors) && !is_cli && XG(stack) && XG(stack)->size) {
+ php_log_err("PHP Stack trace:" TSRMLS_CC);
+
+ for (le = XDEBUG_LLIST_HEAD(XG(stack)); le != NULL; le = XDEBUG_LLIST_NEXT(le))
+ {
+ int c = 0; /* Comma flag */
+ int j = 0; /* Counter */
+ char *tmp_name;
+ xdebug_str log_buffer = {0, 0, NULL};
+
+ i = XDEBUG_LLIST_VALP(le);
+ tmp_name = show_fname(i->function, 0, 0 TSRMLS_CC);
+ xdebug_str_add(&log_buffer, xdebug_sprintf("PHP %3d. %s(", i->level, tmp_name), 1);
+ xdfree(tmp_name);
+
+ /* Printing vars */
+ for (j = 0; j < i->varc; j++) {
+ char *tmp_varname, *tmp_value, *tmp_fancy_value;
+
+ if (c) {
+ xdebug_str_addl(&log_buffer, ", ", 2, 0);
+ } else {
+ c = 1;
+ }
+ tmp_varname = i->var[j].name ? xdebug_sprintf("$%s = ", i->var[j].name) : xdstrdup("");
+ tmp_value = get_zval_value(i->var[j].addr, 0, NULL);
+ xdebug_str_add(&log_buffer, tmp_varname, 0);
+ xdebug_str_add(&log_buffer, tmp_value, 0);
+ xdfree(tmp_varname);
+ xdfree(tmp_value);
+ }
+
+ xdebug_str_add(&log_buffer, xdebug_sprintf(") %s:%d", i->filename, i->lineno), 1);
+ php_log_err(log_buffer.d TSRMLS_CC);
+ }
+ }
+}
 
 static void print_stack(int html, const char *error_type_str, char *buffer, const char *error_filename, const int error_lineno, int log_only TSRMLS_DC)
 {
         char *error_format, *error_string;
         xdebug_llist_element *le;
- int is_cli = (strcmp("cli", sapi_module.name) == 0);
         function_stack_entry *i;
         int len, dummy;
+ char **formats;
+
+ log_stack(error_type_str, buffer, error_filename, error_lineno TSRMLS_CC);
 
- if (html && !log_only) {
- php_printf("<br />\n<font size='1'><table border='1' cellspacing='0'>\n");
+ if (log_only) {
+ return;
         }
 
- error_format = html ?
- "<tr><th align='left' bgcolor='#ee5555' colspan=\"3\">%s: <i>%s</i> in <i>%s</i> on line <i>%d</i></th></tr>\n"
- : "\n%s: %s in %s on line %d\n";
- if (!log_only) {
- php_printf(error_format, error_type_str, buffer, error_filename, error_lineno);
+ if (html) {
+ formats = html_formats;
+ } else {
+ formats = text_formats;
         }
 
+ php_printf(formats[0]);
+
+ php_printf(formats[1], error_type_str, buffer, error_filename, error_lineno);
+
         if (XG(stack) && XG(stack)->size) {
                 i = XDEBUG_LLIST_VALP(XDEBUG_LLIST_HEAD(XG(stack)));
- if (!log_only) {
- if (html) {
- php_printf("<tr><th align='left' bgcolor='#7777dd' colspan='3'>Call Stack</th></tr>\n");
- php_printf("<tr><th align='left' bgcolor='#9999ee'>#</th><th align='left' bgcolor='#9999ee'>Function</th><th align='left' bgcolor='#9999ee'>Location</th></tr>\n");
- } else {
- php_printf("\nCall Stack:\n");
- }
- }
-
- if (PG(log_errors) && !is_cli) {
- php_log_err("PHP Stack trace:" TSRMLS_CC);
- }
+
+ php_printf(formats[2]);
 
                 for (le = XDEBUG_LLIST_HEAD(XG(stack)); le != NULL; le = XDEBUG_LLIST_NEXT(le))
                 {
                         int c = 0; /* Comma flag */
                         int j = 0; /* Counter */
                         char *tmp_name;
- xdebug_str log_buffer = {0, 0, NULL};
                         
                         i = XDEBUG_LLIST_VALP(le);
                         tmp_name = show_fname(i->function, html, 0 TSRMLS_CC);
- if (!log_only) {
- if (html) {
- php_printf("<tr><td bgcolor='#ddddff' align='center'>%d</td><td bgcolor='#ddddff'>%s(", i->level, tmp_name);
- } else {
- php_printf("%10.4f ", i->time - XG(start_time));
+ if (html) {
 #if HAVE_PHP_MEMORY_USAGE
- php_printf("%10ld ", i->memory);
+ php_printf(formats[3], i->level, i->time - XG(start_time), i->memory, tmp_name);
+#else
+ php_printf(formats[3], i->level, i->time - XG(start_time), tmp_name);
+#endif
+ } else {
+#if HAVE_PHP_MEMORY_USAGE
+ php_printf(formats[3], i->time - XG(start_time), i->memory, i->level, tmp_name);
+#else
+ php_printf(formats[3], i->time - XG(start_time), i->level, tmp_name);
 #endif
- php_printf("%3d. %s(", i->level, tmp_name);
- }
- }
- if (PG(log_errors) && !is_cli) {
- xdebug_str_add(&log_buffer, xdebug_sprintf("PHP %3d. %s(", i->level, tmp_name), 1);
                         }
                         xdfree(tmp_name);
 
@@ -1616,83 +1685,49 @@
                                 char *tmp_varname, *tmp_value, *tmp_fancy_value;
 
                                 if (c) {
- if (!log_only) {
- php_printf(", ");
- }
- if (PG(log_errors) && !is_cli) {
- xdebug_str_addl(&log_buffer, ", ", 2, 0);
- }
+ php_printf(", ");
                                 } else {
                                         c = 1;
                                 }
                                 tmp_varname = i->var[j].name ? xdebug_sprintf("$%s = ", i->var[j].name) : xdstrdup("");
- tmp_value = get_zval_value(i->var[j].addr, 0, NULL);
- if (!log_only) {
- if (html) {
- tmp_fancy_value = get_zval_value_fancy(tmp_varname, i->var[j].addr, &len, 0, NULL TSRMLS_CC);
- PHPWRITE(tmp_fancy_value, len);
- xdfree(tmp_fancy_value);
- } else {
- php_printf("%s%s", tmp_varname, tmp_value);
- }
- }
- if (PG(log_errors) && !is_cli) {
- xdebug_str_add(&log_buffer, tmp_varname, 0);
- xdebug_str_add(&log_buffer, tmp_value, 0);
- }
- xdfree(tmp_varname);
- xdfree(tmp_value);
- }
-
- if (!log_only) {
- if (i->include_filename) {
- if (html) {
- php_printf("<font color='#00bb00'>'%s'</font>", i->include_filename);
- } else {
- php_printf("'%s'", i->include_filename);
- }
- }
-
                                 if (html) {
- php_printf(")</td><td bgcolor='#ddddff'>%s<b>:</b>%d</td></tr>\n", i->filename, i->lineno);
+ tmp_fancy_value = get_zval_synopsis_fancy(tmp_varname, i->var[j].addr, &len, 0, NULL TSRMLS_CC);
+ php_printf("%s", tmp_fancy_value);
+ xdfree(tmp_fancy_value);
                                 } else {
- php_printf(") %s:%d\n", i->filename, i->lineno);
+ tmp_value = get_zval_synopsis(i->var[j].addr, 0, NULL);
+ php_printf("%s%s", tmp_varname, tmp_value);
+ xdfree(tmp_value);
                                 }
+ xdfree(tmp_varname);
                         }
- if (PG(log_errors) && !is_cli) {
- xdebug_str_add(&log_buffer, xdebug_sprintf(") %s:%d", i->filename, i->lineno), 1);
- php_log_err(log_buffer.d TSRMLS_CC);
+
+ if (i->include_filename) {
+ php_printf(formats[4], i->include_filename);
                         }
+
+ php_printf(formats[5], i->filename, i->lineno);
                 }
 
- if (!log_only) {
- if (XG(dump_globals)) {
- dump_superglobals(html, PG(log_errors) && !is_cli TSRMLS_CC);
- }
+ if (XG(dump_globals)) {
+ dump_superglobals(html TSRMLS_CC);
+ }
 
- if (XG(show_local_vars) && XG(stack) && XDEBUG_LLIST_TAIL(XG(stack))) {
- int scope_nr = XG(stack)->size;
-
- i = XDEBUG_LLIST_VALP(XDEBUG_LLIST_TAIL(XG(stack)));
- if (i->user_defined == XDEBUG_INTERNAL && XDEBUG_LLIST_PREV(XDEBUG_LLIST_TAIL(XG(stack))) && XDEBUG_LLIST_VALP(XDEBUG_LLIST_PREV(XDEBUG_LLIST_TAIL(XG(stack))))) {
- i = XDEBUG_LLIST_VALP(XDEBUG_LLIST_PREV(XDEBUG_LLIST_TAIL(XG(stack))));
- scope_nr--;
- }
- if (i->used_vars && i->used_vars->size) {
- if (html) {
- php_printf("<tr><th align='left' colspan='3' bgcolor='#33aa33'>Variables in local scope (#%d)</th></tr>\n", scope_nr);
- php_printf("<tr><th align='left' colspan='2' bgcolor='#55cc55'>Variable</th><th align='left' bgcolor='#55cc55'>Value</th></tr>\n");
- } else {
- php_printf("\n\nVariables in local scope:\n");
- }
- xdebug_hash_apply(i->used_vars, (void*) &html, dump_used_var_with_contents);
- }
+ if (XG(show_local_vars) && XG(stack) && XDEBUG_LLIST_TAIL(XG(stack))) {
+ int scope_nr = XG(stack)->size;
+
+ i = XDEBUG_LLIST_VALP(XDEBUG_LLIST_TAIL(XG(stack)));
+ if (i->user_defined == XDEBUG_INTERNAL && XDEBUG_LLIST_PREV(XDEBUG_LLIST_TAIL(XG(stack))) && XDEBUG_LLIST_VALP(XDEBUG_LLIST_PREV(XDEBUG_LLIST_TAIL(XG(stack))))) {
+ i = XDEBUG_LLIST_VALP(XDEBUG_LLIST_PREV(XDEBUG_LLIST_TAIL(XG(stack))));
+ scope_nr--;
+ }
+ if (i->used_vars && i->used_vars->size) {
+ php_printf(formats[6], scope_nr);
+ xdebug_hash_apply(i->used_vars, (void*) &html, dump_used_var_with_contents);
                         }
                 }
 
- if (html && !log_only) {
- php_printf("</table></font>\n");
- }
+ php_printf(formats[7]);
         }
 }
 
@@ -1990,11 +2025,20 @@
         }
 #endif
 
- if (XG(error_handler)) { /* If an error handler is set, use it */
-/*
- call_handler(error_type_str, buffer, error_filename, error_lineno TSRMLS_CC);
-*/
- } else if ((EG(error_reporting) & type)) { /* Otherwise print the default stack trace */
+ /* Log to logger */
+ if (PG(log_errors) && !(strcmp("cli", sapi_module.name) == 0) && (EG(error_reporting) & type)) {
+ char log_buffer[1024];
+
+#ifdef PHP_WIN32
+ if (type==E_CORE_ERROR || type==E_CORE_WARNING) {
+ MessageBox(NULL, buffer, error_type_str, MB_OK|ZEND_SERVICE_MB_STYLE);
+ }
+#endif
+ snprintf(log_buffer, 1024, "PHP %s: %s in %s on line %d", error_type_str, buffer, error_filename, error_lineno);
+ php_log_err(log_buffer TSRMLS_CC);
+ }
+
+ if ((EG(error_reporting) & type)) { /* Otherwise print the default stack trace */
                 print_stack(!(strcmp("cli", sapi_module.name) == 0), error_type_str, buffer, error_filename, error_lineno, !PG(display_errors) TSRMLS_CC);
         }
 
@@ -2008,19 +2052,6 @@
                         }
                 }
         }
-
- /* Log to logger */
- if (PG(log_errors) && !(strcmp("cli", sapi_module.name) == 0) && (EG(error_reporting) & type)) {
- char log_buffer[1024];
-
-#ifdef PHP_WIN32
- if (type==E_CORE_ERROR || type==E_CORE_WARNING) {
- MessageBox(NULL, buffer, error_type_str, MB_OK|ZEND_SERVICE_MB_STYLE);
- }
-#endif
- snprintf(log_buffer, 1024, "PHP %s: %s in %s on line %d", error_type_str, buffer, error_filename, error_lineno);
- php_log_err(log_buffer TSRMLS_CC);
- }
         xdfree(error_type_str);
 
         /* Bail out if we can't recover */
@@ -2153,7 +2184,7 @@
         function_stack_entry *i;
 
         i = xdebug_get_stack_frame(0 TSRMLS_CC);
- print_stack(!(strcmp("cli", sapi_module.name) == 0), "Xdebug", "user triggered", i->filename, i->lineno, !PG(display_errors) TSRMLS_CC);
+ print_stack(!(strcmp("cli", sapi_module.name) == 0), "Xdebug", "user triggered", i->filename, i->lineno, 0 TSRMLS_CC);
 }
 /* }}} */
 
@@ -2619,21 +2650,6 @@
         RETURN_DOUBLE(xdebug_get_utime() - XG(start_time));
 }
 
-PHP_FUNCTION(xdebug_set_error_handler)
-{
- char *handler;
- int handler_len;
-
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &handler, &handler_len) == FAILURE) {
- return;
- }
-
- if (XG(error_handler)) {
- efree(XG(error_handler));
- }
- XG(error_handler) = estrndup(handler, handler_len);
-}
-
 /*************************************************************************************************************************************/
 #define T(offset) (*(temp_variable *)((char *) Ts + offset))
 

[FILE: /xdebug/xdebug_superglobals.c]

===================================================================
RCS file: cvstemp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- xdebug/xdebug_superglobals.c:1.18 Fri Sep 29 08:07:16 2006 GMT
+++ xdebug/xdebug_superglobals.c Fri Oct 06 12:23:03 2006 GMT
@@ -29,16 +29,16 @@
         free(ptr);
 }
 
-static void dump_hash_elem(zval *z, char *name, long index, char *elem, int html, int log TSRMLS_DC)
+static void dump_hash_elem(zval *z, char *name, long index, char *elem, int html TSRMLS_DC)
 {
         char buffer[1024];
         int len;
 
         if (html) {
                 if (elem) {
- php_printf("<tr><td colspan='2' align='right' bgcolor='#ffffcc'>$%s['%s'] =</td>", name, elem);
+ php_printf("<tr><td colspan='2' align='right' bgcolor='#eeeeec' valign='top'><pre>$%s['%s']&nbsp;=</pre></td>", name, elem);
                 } else {
- php_printf("<tr><td colspan='2' align='right' bgcolor='#ffffcc'>$%s[%ld] =</td>", name, index);
+ php_printf("<tr><td colspan='2' align='right' bgcolor='#eeeeec' valign='top'><pre>$%s[%ld]&nbsp;=</pre></td>", name, index);
                 }
         }
 
@@ -47,30 +47,28 @@
 
                 if (html) {
                         val = get_zval_value_fancy(NULL, z, &len, 0, NULL TSRMLS_CC);
- php_printf("<td bgcolor='#ffffcc'>");
+#if HAVE_PHP_MEMORY_USAGE
+ php_printf("<td colspan='3' bgcolor='#eeeeec'>");
+#else
+ php_printf("<td colspan='2' bgcolor='#eeeeec'>");
+#endif
                         PHPWRITE(val, len);
                         php_printf("</td>");
                 } else {
                         val = get_zval_value(z, 0, NULL);
                         printf("\n $%s['%s'] = %s", name, elem, val);
                 }
-
- if (log) {
- snprintf(buffer, 1024, "PHP $%s['%s'] = %s", name, elem, val);
- php_log_err(buffer TSRMLS_CC);
- }
         } else {
                 /* not found */
                 if (html) {
- php_printf("<td bgcolor='#ffff77'><i>undefined</i></td>");
+#if HAVE_PHP_MEMORY_USAGE
+ php_printf("<td colspan='3' bgcolor='#eeeeec'><i>undefined</i></td>");
+#else
+ php_printf("<td colspan='2' bgcolor='#eeeeec'><i>undefined</i></td>");
+#endif
                 } else {
                         printf("\n $%s['%s'] is undefined", name, elem);
                 }
-
- if (log) {
- snprintf(buffer, 1024, "PHP $%s['%s'] is undefined", name, elem);
- php_log_err(buffer TSRMLS_CC);
- }
         }
 
         if (html) {
@@ -80,7 +78,7 @@
 
 static int dump_hash_elem_va(void *pDest, int num_args, va_list args, zend_hash_key *hash_key)
 {
- int html, log;
+ int html;
         char *name;
 #ifdef ZTS
         void ***tsrm_ls;
@@ -88,22 +86,21 @@
 
         name = va_arg(args, char *);
         html = va_arg(args, int);
- log = va_arg(args, int);
 
 #ifdef ZTS
         tsrm_ls = va_arg(args, void ***);
 #endif
 
         if (hash_key->nKeyLength == 0) {
- dump_hash_elem(*((zval **) pDest), name, hash_key->h, NULL, html, log TSRMLS_CC);
+ dump_hash_elem(*((zval **) pDest), name, hash_key->h, NULL, html TSRMLS_CC);
         } else {
- dump_hash_elem(*((zval **) pDest), name, 0, hash_key->arKey, html, log TSRMLS_CC);
+ dump_hash_elem(*((zval **) pDest), name, 0, hash_key->arKey, html TSRMLS_CC);
         }
 
         return SUCCESS;
 }
 
-static void dump_hash(xdebug_llist *l, char *name, int name_len, int html, int log TSRMLS_DC)
+static void dump_hash(xdebug_llist *l, char *name, int name_len, int html TSRMLS_DC)
 {
         zval **z;
         HashTable *ht;
@@ -120,41 +117,38 @@
         }
 
         if (html) {
- php_printf("<tr><th colspan='3' bgcolor='#dddd22'>Dump <i>$%s</i></th></tr>\n", name);
+#if HAVE_PHP_MEMORY_USAGE
+ php_printf("<tr><th colspan='5' align='left' bgcolor='#e9b96e'>Dump <i>$%s</i></th></tr>\n", name);
+#else
+ php_printf("<tr><th colspan='4' align='left' bgcolor='#e9b96e'>Dump <i>$%s</i></th></tr>\n", name);
+#endif
         } else {
                 printf("\nDump $%s", name);
         }
 
- if (log) {
- char buffer[64];
-
- snprintf(buffer, 64, "PHP Dump $%s:", name);
- php_log_err(buffer TSRMLS_CC);
- }
-
         elem = XDEBUG_LLIST_HEAD(l);
 
         while (elem != NULL) {
                 if (ht && (*((char *) (elem->ptr)) == '*')) {
 
 #ifdef ZTS
-#define X_DUMP_ARGS 4
-#else
 #define X_DUMP_ARGS 3
+#else
+#define X_DUMP_ARGS 2
 #endif
 
- zend_hash_apply_with_arguments(ht, dump_hash_elem_va, X_DUMP_ARGS, name, html, log TSRMLS_CC);
+ zend_hash_apply_with_arguments(ht, dump_hash_elem_va, X_DUMP_ARGS, name, html TSRMLS_CC);
                 } else if (ht && zend_hash_find(ht, elem->ptr, strlen(elem->ptr) + 1, (void **) &z) == SUCCESS) {
- dump_hash_elem(*z, name, 0, elem->ptr, html, log TSRMLS_CC);
+ dump_hash_elem(*z, name, 0, elem->ptr, html TSRMLS_CC);
                 } else if(XG(dump_undefined)) {
- dump_hash_elem(NULL, name, 0, elem->ptr, html, log TSRMLS_CC);
+ dump_hash_elem(NULL, name, 0, elem->ptr, html TSRMLS_CC);
                 }
 
                 elem = XDEBUG_LLIST_NEXT(elem);
         }
 }
 
-void dump_superglobals(int html, int log TSRMLS_DC)
+void dump_superglobals(int html TSRMLS_DC)
 {
         if (XG(dump_once) && XG(dumped)) {
                 return;
@@ -162,14 +156,14 @@
 
         XG(dumped) = 1;
 
- dump_hash(&XG(server), "_SERVER", 8, html, log TSRMLS_CC);
- dump_hash(&XG(get), "_GET", 5, html, log TSRMLS_CC);
- dump_hash(&XG(post), "_POST", 6, html, log TSRMLS_CC);
- dump_hash(&XG(cookie), "_COOKIE", 8, html, log TSRMLS_CC);
- dump_hash(&XG(files), "_FILES", 7, html, log TSRMLS_CC);
- dump_hash(&XG(env), "_ENV", 5, html, log TSRMLS_CC);
- dump_hash(&XG(session), "_SESSION", 9, html, log TSRMLS_CC);
- dump_hash(&XG(request), "_REQUEST", 9, html, log TSRMLS_CC);
+ dump_hash(&XG(server), "_SERVER", 8, html TSRMLS_CC);
+ dump_hash(&XG(get), "_GET", 5, html TSRMLS_CC);
+ dump_hash(&XG(post), "_POST", 6, html TSRMLS_CC);
+ dump_hash(&XG(cookie), "_COOKIE", 8, html TSRMLS_CC);
+ dump_hash(&XG(files), "_FILES", 7, html TSRMLS_CC);
+ dump_hash(&XG(env), "_ENV", 5, html TSRMLS_CC);
+ dump_hash(&XG(session), "_SESSION", 9, html TSRMLS_CC);
+ dump_hash(&XG(request), "_REQUEST", 9, html TSRMLS_CC);
 }
 
 void dump_tok(xdebug_llist *l, char *str)
@@ -206,7 +200,7 @@
                 php_printf("<table border='1' cellspacing='0'>\n");
         }
 
- dump_superglobals(html , PG(log_errors) && !is_cli TSRMLS_CC);
+ dump_superglobals(html TSRMLS_CC);
 
         if (html) {
                 php_printf("</table>\n");

[FILE: /xdebug/xdebug_superglobals.h]

===================================================================
RCS file: cvstemp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- xdebug/xdebug_superglobals.h:1.5 Sun Jan 01 14:27:27 2006 GMT
+++ xdebug/xdebug_superglobals.h Fri Oct 06 12:23:03 2006 GMT
@@ -22,7 +22,7 @@
 #include "php.h"
 
 void dump_dtor(void *, void*);
-void dump_superglobals(int html, int log TSRMLS_DC);
+void dump_superglobals(int html TSRMLS_DC);
 void dump_tok(xdebug_llist *l, char *str);
 
 #define DUMP_TOK(__llist) \

[FILE: /xdebug/xdebug_var.c]

===================================================================
RCS file: cvstemp,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -r1.73 -r1.74
--- xdebug/xdebug_var.c:1.73 Fri Sep 29 08:07:16 2006 GMT
+++ xdebug/xdebug_var.c Fri Oct 06 12:23:03 2006 GMT
@@ -324,6 +324,78 @@
         return str.d;
 }
 
+static void xdebug_var_synopsis(zval **struc, xdebug_str *str, int level, int debug_zval, xdebug_var_export_options *options TSRMLS_DC)
+{
+ HashTable *myht;
+ char* tmp_str;
+ int tmp_len;
+
+ if (!struc || !(*struc)) {
+ return;
+ }
+ if (debug_zval) {
+ xdebug_str_add(str, xdebug_sprintf("(refcount=%d, is_ref=%d)=", (*struc)->refcount, (*struc)->is_ref), 1);
+ }
+ switch (Z_TYPE_PP(struc)) {
+ case IS_BOOL:
+ xdebug_str_addl(str, "bool", 4, 0);
+ break;
+
+ case IS_NULL:
+ xdebug_str_addl(str, "null", 4, 0);
+ break;
+
+ case IS_LONG:
+ xdebug_str_addl(str, "long", 4, 0);
+ break;
+
+ case IS_DOUBLE:
+ xdebug_str_addl(str, "double", 6, 0);
+ break;
+
+ case IS_STRING:
+ xdebug_str_add(str, xdebug_sprintf("string(%d)", Z_STRLEN_PP(struc)), 1);
+ break;
+
+ case IS_ARRAY:
+ myht = Z_ARRVAL_PP(struc);
+ xdebug_str_add(str, xdebug_sprintf("array(%d)", myht->nNumOfElements), 1);
+ break;
+
+ case IS_OBJECT:
+ xdebug_str_add(str, xdebug_sprintf("class %s ", Z_OBJCE_PP(struc)->name), 1);
+ break;
+
+ case IS_RESOURCE: {
+ char *type_name;
+
+ type_name = zend_rsrc_list_get_rsrc_type(Z_LVAL_PP(struc) TSRMLS_CC);
+ xdebug_str_add(str, xdebug_sprintf("resource(%ld) of type (%s)", Z_LVAL_PP(struc), type_name ? type_name : "Unknown"), 1);
+ break;
+ }
+ }
+}
+
+char* get_zval_synopsis(zval *val, int debug_zval, xdebug_var_export_options *options)
+{
+ xdebug_str str = {0, 0, NULL};
+ int default_options = 0;
+ TSRMLS_FETCH();
+
+ if (!options) {
+ options = get_options_from_ini(TSRMLS_C);
+ default_options = 1;
+ }
+
+ xdebug_var_export(&val, (xdebug_str*) &str, 1, debug_zval, options TSRMLS_CC);
+
+ if (default_options) {
+ xdfree(options);
+ }
+
+ return str.d;
+}
+
 /*****************************************************************************
 ** XML variable printing routines
 */
@@ -698,13 +770,16 @@
 ** Fancy variable printing routines
 */
 
-#define BLUE "#0000ff"
-#define RED "#ff0000"
-#define GREEN "#00bb00"
-#define BLUE_GREEN "#00bbbb"
-#define PURPLE "#bb00bb"
-#define LGREY "#999999"
-#define DGREY "#777777"
+#define COLOR_POINTER "#888a85"
+#define COLOR_BOOL "#75507b"
+#define COLOR_LONG "#4e9a06"
+#define COLOR_NULL "#3465a4"
+#define COLOR_DOUBLE "#f57900"
+#define COLOR_STRING "#cc0000"
+#define COLOR_EMPTY "#888a85"
+#define COLOR_ARRAY "#ce5c00"
+#define COLOR_OBJECT "#8f5902"
+#define COLOR_RESOURCE "#2e3436"
 
 static int xdebug_array_element_export_fancy(zval **zv, int num_args, va_list args, zend_hash_key *hash_key)
 {
@@ -721,9 +796,9 @@
         xdebug_str_add(str, xdebug_sprintf("%*s", (level * 4) - 2, ""), 1);
 
         if (hash_key->nKeyLength==0) { /* numeric key */
- xdebug_str_add(str, xdebug_sprintf("%ld <font color='%s'>=&gt;</font> ", hash_key->h, DGREY), 1);
+ xdebug_str_add(str, xdebug_sprintf("%ld <font color='%s'>=&gt;</font> ", hash_key->h, COLOR_POINTER), 1);
         } else { /* string key */
- xdebug_str_add(str, xdebug_sprintf("'%s' <font color='%s'>=&gt;</font> ", hash_key->arKey, DGREY), 1);
+ xdebug_str_add(str, xdebug_sprintf("'%s' <font color='%s'>=&gt;</font> ", hash_key->arKey, COLOR_POINTER), 1);
         }
         xdebug_var_export_fancy(zv, str, level + 1, debug_zval, options TSRMLS_CC);
 
@@ -749,7 +824,7 @@
         key = hash_key->arKey;
         if (hash_key->nKeyLength != 0) {
                 modifier = xdebug_get_property_info(hash_key->arKey, hash_key->nKeyLength, &prop_name);
- xdebug_str_add(str, xdebug_sprintf("<i>%s</i> '%s' <font color='%s'>=&gt;</font> ", modifier, prop_name, DGREY), 1);
+ xdebug_str_add(str, xdebug_sprintf("<i>%s</i> '%s' <font color='%s'>=&gt;</font> ", modifier, prop_name, COLOR_POINTER), 1);
         }
         xdebug_var_export_fancy(zv, str, level + 1, debug_zval, options TSRMLS_CC);
         return 0;
@@ -766,23 +841,23 @@
         }
         switch (Z_TYPE_PP(struc)) {
                 case IS_BOOL:
- xdebug_str_add(str, xdebug_sprintf("<font color='%s'>%s</font>", BLUE, Z_LVAL_PP(struc) ? "true" : "false"), 1);
+ xdebug_str_add(str, xdebug_sprintf("<font color='%s'>%s</font>", COLOR_BOOL, Z_LVAL_PP(struc) ? "true" : "false"), 1);
                         break;
 
                 case IS_NULL:
- xdebug_str_add(str, xdebug_sprintf("<font color='%s'>null</font>", RED), 1);
+ xdebug_str_add(str, xdebug_sprintf("<font color='%s'>null</font>", COLOR_NULL), 1);
                         break;
 
                 case IS_LONG:
- xdebug_str_add(str, xdebug_sprintf("<font color='%s'>%ld</font>", GREEN, Z_LVAL_PP(struc)), 1);
+ xdebug_str_add(str, xdebug_sprintf("<font color='%s'>%ld</font>", COLOR_LONG, Z_LVAL_PP(struc)), 1);
                         break;
 
                 case IS_DOUBLE:
- xdebug_str_add(str, xdebug_sprintf("<font color='%s'>%.*G</font>", BLUE_GREEN, (int) EG(precision), Z_DVAL_PP(struc)), 1);
+ xdebug_str_add(str, xdebug_sprintf("<font color='%s'>%.*G</font>", COLOR_DOUBLE, (int) EG(precision), Z_DVAL_PP(struc)), 1);
                         break;
 
                 case IS_STRING:
- xdebug_str_add(str, xdebug_sprintf("<font color='%s'>'", PURPLE), 1);
+ xdebug_str_add(str, xdebug_sprintf("<font color='%s'>'", COLOR_STRING), 1);
                         if (Z_STRLEN_PP(struc) > options->max_data) {
                                 tmp_str = xmlize(Z_STRVAL_PP(struc), options->max_data, &newlen);
                                 xdebug_str_addl(str, tmp_str, newlen, 0);
@@ -807,7 +882,7 @@
                                                 zend_hash_apply_with_arguments(myht, (apply_func_args_t) xdebug_array_element_export_fancy, 4, level, str, debug_zval, options);
                                         } else {
                                                 xdebug_str_add(str, xdebug_sprintf("%*s", (level * 4) - 2, ""), 1);
- xdebug_str_add(str, xdebug_sprintf("<i><font color='%s'>empty</font></i>\n", LGREY), 1);
+ xdebug_str_add(str, xdebug_sprintf("<i><font color='%s'>empty</font></i>\n", COLOR_EMPTY), 1);
                                         }
                                 } else {
                                         xdebug_str_add(str, xdebug_sprintf("%*s", (level * 4) - 2, ""), 1);
@@ -848,12 +923,12 @@
                         char *type_name;
 
                         type_name = zend_rsrc_list_get_rsrc_type(Z_LVAL_PP(struc) TSRMLS_CC);
- xdebug_str_add(str, xdebug_sprintf("<b>resource</b>(<i>%ld</i><font color='%s'>,</font> <i>%s</i>)", Z_LVAL_PP(struc), DGREY, type_name ? type_name : "Unknown"), 1);
+ xdebug_str_add(str, xdebug_sprintf("<b>resource</b>(<i>%ld</i><font color='%s'>,</font> <i>%s</i>)", Z_LVAL_PP(struc), COLOR_RESOURCE, type_name ? type_name : "Unknown"), 1);
                         break;
                 }
 
                 default:
- xdebug_str_add(str, xdebug_sprintf("<font color='%s'>null</font>", RED), 0);
+ xdebug_str_add(str, xdebug_sprintf("<font color='%s'>null</font>", COLOR_NULL), 0);
                         break;
         }
         if (Z_TYPE_PP(struc) != IS_ARRAY && Z_TYPE_PP(struc) != IS_OBJECT) {
@@ -883,6 +958,79 @@
         return str.d;
 }
 
+static void xdebug_var_synopsis_fancy(zval **struc, xdebug_str *str, int level, int debug_zval, xdebug_var_export_options *options TSRMLS_DC)
+{
+ HashTable *myht;
+ char* tmp_str;
+ int newlen;
+
+ if (debug_zval) {
+ xdebug_str_add(str, xdebug_sprintf("<i>(refcount=%d, is_ref=%d)</i>,", (*struc)->refcount, (*struc)->is_ref), 1);
+ }
+ switch (Z_TYPE_PP(struc)) {
+ case IS_BOOL:
+ xdebug_str_add(str, xdebug_sprintf("<font color='%s'>bool</font>", COLOR_BOOL), 1);
+ break;
+
+ case IS_NULL:
+ xdebug_str_add(str, xdebug_sprintf("<font color='%s'>null</font>", COLOR_NULL), 1);
+ break;
+
+ case IS_LONG:
+ xdebug_str_add(str, xdebug_sprintf("<font color='%s'>long</font>", COLOR_LONG), 1);
+ break;
+
+ case IS_DOUBLE:
+ xdebug_str_add(str, xdebug_sprintf("<font color='%s'>double</font>", COLOR_DOUBLE), 1);
+ break;
+
+ case IS_STRING:
+ xdebug_str_add(str, xdebug_sprintf("<font color='%s'>string(%d)</font>", COLOR_STRING, Z_STRLEN_PP(struc)), 1);
+ break;
+
+ case IS_ARRAY:
+ myht = Z_ARRVAL_PP(struc);
+ xdebug_str_add(str, xdebug_sprintf("<font color='%s'>array(%d)</font>", COLOR_ARRAY, myht->nNumOfElements), 1);
+ break;
+
+ case IS_OBJECT:
+ xdebug_str_add(str, xdebug_sprintf("<font color='%s'>object(%s)", COLOR_OBJECT, Z_OBJCE_PP(struc)->name), 1);
+#ifdef ZEND_ENGINE_2
+ xdebug_str_add(str, xdebug_sprintf("[%d]", Z_OBJ_HANDLE_PP(struc)), 1);
+#endif
+ xdebug_str_addl(str, "</font>", 7, 0);
+ break;
+
+ case IS_RESOURCE: {
+ char *type_name;
+
+ type_name = zend_rsrc_list_get_rsrc_type(Z_LVAL_PP(struc) TSRMLS_CC);
+ xdebug_str_add(str, xdebug_sprintf("<font color='%s'>resource(%ld, %s)</font>", COLOR_RESOURCE, Z_LVAL_PP(struc), type_name ? type_name : "Unknown"), 1);
+ break;
+ }
+ }
+}
+
+char* get_zval_synopsis_fancy(char *name, zval *val, int *len, int debug_zval, xdebug_var_export_options *options TSRMLS_DC)
+{
+ xdebug_str str = {0, 0, NULL};
+ int default_options = 0;
+
+ if (!options) {
+ options = get_options_from_ini(TSRMLS_C);
+ default_options = 1;
+ }
+
+ xdebug_var_synopsis_fancy(&val, (xdebug_str*) &str, 1, debug_zval, options TSRMLS_CC);
+
+ if (default_options) {
+ xdfree(options);
+ }
+
+ *len = str.l;
+ return str.d;
+}
+
 /*****************************************************************************
 ** XML encoding function
 */

[FILE: /xdebug/xdebug_var.h]

===================================================================
RCS file: cvstemp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- xdebug/xdebug_var.h:1.24 Fri Sep 29 08:07:16 2006 GMT
+++ xdebug/xdebug_var.h Fri Oct 06 12:23:03 2006 GMT
@@ -56,6 +56,10 @@
 char* get_zval_value_xml (char *name, zval *val);
 char* get_zval_value_fancy(char *name, zval *val, int *len, int debug_zval, xdebug_var_export_options *options TSRMLS_DC);
 xdebug_xml_node* get_zval_value_xml_node (char *name, zval *val, xdebug_var_export_options *options);
+
+char* get_zval_synopsis(zval *val, int debug_zval, xdebug_var_export_options *options);
+char* get_zval_synopsis_fancy(char *name, zval *val, int *len, int debug_zval, xdebug_var_export_options *options TSRMLS_DC);
+
 char* show_fname(xdebug_func t, int html, int flags TSRMLS_DC);
 
 #endif

[FILE: /xdebug/tests/bug00032-ze22.phpt]

===================================================================
RCS file: cvstemp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- xdebug/tests/bug00032-ze22.phpt:1.2 Tue Aug 08 10:38:34 2006 GMT
+++ xdebug/tests/bug00032-ze22.phpt Fri Oct 06 12:23:04 2006 GMT
@@ -32,10 +32,12 @@
 Call Stack:
 %w%f %w%d 1. {main}() %sbug00032-ze22.php:0
 
+
 Notice: Array to string conversion in %sbug00032-ze22.php on line 9
 
 Call Stack:
 %w%f %w%d 1. {main}() %sbug00032-ze22.php:0
+
 foo
 
 Catchable fatal error: Object of class stdClass could not be converted to string in %sbug00032-ze22.php on line 11
@@ -43,18 +45,22 @@
 Call Stack:
 %w%f %w%d 1. {main}() %sbug00032-ze22.php:0
 
+
 Notice: Object of class stdClass to string conversion in %sbug00032-ze22.php on line 11
 
 Call Stack:
 %w%f %w%d 1. {main}() %sbug00032-ze22.php:0
 
+
 Catchable fatal error: Object of class stdClass could not be converted to string in %sbug00032-ze22.php on line 12
 
 Call Stack:
 %w%f %w%d 1. {main}() %sbug00032-ze22.php:0
 
+
 Notice: Object of class stdClass to string conversion in %sbug00032-ze22.php on line 12
 
 Call Stack:
 %w%f %w%d 1. {main}() %sbug00032-ze22.php:0
+
 foo

[FILE: /xdebug/tests/bug00089.phpt]

===================================================================
RCS file: cvstemp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- xdebug/tests/bug00089.phpt:1.3 Fri Dec 30 13:52:37 2005 GMT
+++ xdebug/tests/bug00089.phpt Fri Oct 06 12:23:04 2006 GMT
@@ -16,11 +16,11 @@
 --EXPECT--
 <pre>
 <b>array</b>
- 0 <font color='#777777'>=&gt;</font> <font color='#00bb00'>4</font>
- 1 <font color='#777777'>=&gt;</font>
+ 0 <font color='#888a85'>=&gt;</font> <font color='#4e9a06'>4</font>
+ 1 <font color='#888a85'>=&gt;</font>
     <b>array</b>
- 0 <font color='#777777'>=&gt;</font> <font color='#bb00bb'>''</font> <i>(length=0)</i>
- 1 <font color='#777777'>=&gt;</font> <font color='#00bb00'>2</font>
- 2 <font color='#777777'>=&gt;</font> <font color='#bb00bb'>'node'</font> <i>(length=4)</i>
- 2 <font color='#777777'>=&gt;</font> <font color='#0000ff'>false</font>
+ 0 <font color='#888a85'>=&gt;</font> <font color='#cc0000'>''</font> <i>(length=0)</i>
+ 1 <font color='#888a85'>=&gt;</font> <font color='#4e9a06'>2</font>
+ 2 <font color='#888a85'>=&gt;</font> <font color='#cc0000'>'node'</font> <i>(length=4)</i>
+ 2 <font color='#888a85'>=&gt;</font> <font color='#75507b'>false</font>
 </pre>

[FILE: /xdebug/tests/bug00178.phpt]

===================================================================
RCS file: cvstemp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- xdebug/tests/bug00178.phpt:1.1 Sun May 07 19:55:49 2006 GMT
+++ xdebug/tests/bug00178.phpt Fri Oct 06 12:23:04 2006 GMT
@@ -24,5 +24,5 @@
 DONE
 --EXPECT--
> fsockopen() expects at least 1 parameter, 0 given
-> unable to connect to localhost:5000 (Connection refused)
+> fsockopen(): unable to connect to localhost:5000 (Connection refused)
 DONE

[FILE: /xdebug/tests/local_vars_in_error.phpt]

===================================================================
RCS file: cvstemp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- xdebug/tests/local_vars_in_error.phpt:1.9 Mon Jan 02 15:12:31 2006 GMT
+++ xdebug/tests/local_vars_in_error.phpt Fri Oct 06 12:23:04 2006 GMT
@@ -29,7 +29,7 @@
 %w%f %w%d 2. a(5, 6) /%s/local_vars_in_error.php:8
 
 
-Variables in local scope:
+Variables in local scope (#2):
   $d = class stdClass { }
   $a = 5
   $c = array (0 => 5, 1 => 36)

[FILE: /xdebug/tests/xdebug_var_dump.phpt]

===================================================================
RCS file: cvstemp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- xdebug/tests/xdebug_var_dump.phpt:1.4 Fri Dec 30 13:52:37 2005 GMT
+++ xdebug/tests/xdebug_var_dump.phpt Fri Oct 06 12:23:04 2006 GMT
@@ -35,22 +35,22 @@
 --EXPECT--
 <pre>
 <b>object</b>(<i>TimeStuff</i>)[<i>1</i>]
- <i>private</i> 'timestamp' <font color='#777777'>=&gt;</font> <font color='#00bb00'>1092515106</font>
- <i>private</i> 'user_defined' <font color='#777777'>=&gt;</font> <font color='#0000ff'>true</font>
- <i>private</i> 'self' <font color='#777777'>=&gt;</font>
+ <i>private</i> 'timestamp' <font color='#888a85'>=&gt;</font> <font color='#4e9a06'>1092515106</font>
+ <i>private</i> 'user_defined' <font color='#888a85'>=&gt;</font> <font color='#75507b'>true</font>
+ <i>private</i> 'self' <font color='#888a85'>=&gt;</font>
     <i>&</i><b>object</b>(<i>TimeStuff</i>)[<i>1</i>]
- <i>protected</i> 'tm' <font color='#777777'>=&gt;</font>
+ <i>protected</i> 'tm' <font color='#888a85'>=&gt;</font>
     <b>array</b>
- 'seconds' <font color='#777777'>=&gt;</font> <font color='#00bb00'>6</font>
- 'minutes' <font color='#777777'>=&gt;</font> <font color='#00bb00'>25</font>
- 'hours' <font color='#777777'>=&gt;</font> <font color='#00bb00'>22</font>
- 'mday' <font color='#777777'>=&gt;</font> <font color='#00bb00'>14</font>
- 'wday' <font color='#777777'>=&gt;</font> <font color='#00bb00'>6</font>
- 'mon' <font color='#777777'>=&gt;</font> <font color='#00bb00'>8</font>
- 'year' <font color='#777777'>=&gt;</font> <font color='#00bb00'>2004</font>
- 'yday' <font color='#777777'>=&gt;</font> <font color='#00bb00'>226</font>
- 'weekday' <font color='#777777'>=&gt;</font> <font color='#bb00bb'>'Saturday'</font> <i>(length=8)</i>
- 'month' <font color='#777777'>=&gt;</font> <font color='#bb00bb'>'August'</font> <i>(length=6)</i>
- 0 <font color='#777777'>=&gt;</font> <font color='#00bb00'>1092515106</font>
- <i>public</i> 'date' <font color='#777777'>=&gt;</font> <font color='#bb00bb'>'2004-08-14 22:25:06 CEST'</font> <i>(length=24)</i>
+ 'seconds' <font color='#888a85'>=&gt;</font> <font color='#4e9a06'>6</font>
+ 'minutes' <font color='#888a85'>=&gt;</font> <font color='#4e9a06'>25</font>
+ 'hours' <font color='#888a85'>=&gt;</font> <font color='#4e9a06'>22</font>
+ 'mday' <font color='#888a85'>=&gt;</font> <font color='#4e9a06'>14</font>
+ 'wday' <font color='#888a85'>=&gt;</font> <font color='#4e9a06'>6</font>
+ 'mon' <font color='#888a85'>=&gt;</font> <font color='#4e9a06'>8</font>
+ 'year' <font color='#888a85'>=&gt;</font> <font color='#4e9a06'>2004</font>
+ 'yday' <font color='#888a85'>=&gt;</font> <font color='#4e9a06'>226</font>
+ 'weekday' <font color='#888a85'>=&gt;</font> <font color='#cc0000'>'Saturday'</font> <i>(length=8)</i>
+ 'month' <font color='#888a85'>=&gt;</font> <font color='#cc0000'>'August'</font> <i>(length=6)</i>
+ 0 <font color='#888a85'>=&gt;</font> <font color='#4e9a06'>1092515106</font>
+ <i>public</i> 'date' <font color='#888a85'>=&gt;</font> <font color='#cc0000'>'2004-08-14 22:25:06 CEST'</font> <i>(length=24)</i>
 </pre>
Received on Fri Oct 06 2006 - 16:23:08 BST

This archive was generated by hypermail 2.2.0 : Sun Jun 24 2018 - 04:00:03 BST