View Issue Details

IDProjectCategoryView StatusLast Update
0000565XdebugUncategorizedpublic2010-04-20 13:41
Reporterdo_aki Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version2.1.0RC1 
Summary0000565: xdebug.show_local_vars setting does not work with php 5.3
Description

All variables value displayed "Undefined" (HTML) or "uninitialized" (TEXT) in "Variables in local scope" when exception is thrown.
Please refer to the following.


Condition:

configuration settings : "xdebug.show_local_vars = 1"
$ php -r 'function func(){$a="hoge"; throw new Exception();} func();'

Displayed:

Fatal error: Uncaught exception 'Exception' in Command line code on line 1

Exception: in Command line code on line 1

Call Stack:
0.0002 620848 1. {main}() Command line code:0
0.0003 620848 2. func() Command line code:1

Dump $_GET
Dump $_POST

Variables in local scope (0000002):
$a = uninitialized

Expected:

Variables in local scope (0000002):
$a = 'hoge'

Additional Information

This problem was confirmed to operate normally with the following patches.

I think that it is a problem of originating in "Lazy EG(active_symbol_table) initialization".
It is log message of php 5.3 svn repository at revision 258703.


--- xdebug.c.original 2010-04-15 15:39:56.000000000 +0900
+++ xdebug.c 2010-04-15 16:40:06.000000000 +0900
@@ -1457,7 +1457,13 @@
efree(args);
WRONG_PARAM_COUNT;
}

  • +#if PHP_VERSION_ID >= 50300

  • if (!EG(active_symbol_table)) {
  • zend_rebuild_symbol_table(TSRMLS_C);
  • }
    +#endif
  • for (i = 0; i < argc; i++) {
    if (Z_TYPE_PP(args[i]) == IS_STRING) {
    XG(active_symbol_table) = EG(active_symbol_table);
    @@ -1498,7 +1504,13 @@
    efree(args);
    WRONG_PARAM_COUNT;
    }

  • +#if PHP_VERSION_ID >= 50300

  • if (!EG(active_symbol_table)) {
  • zend_rebuild_symbol_table(TSRMLS_C);
  • }
    +#endif
  • for (i = 0; i < argc; i++) {
    if (Z_TYPE_PP(args[i]) == IS_STRING) {
    XG(active_symbol_table) = EG(active_symbol_table);

--- xdebug_stack.c.original 2010-04-15 15:45:52.000000000 +0900
+++ xdebug_stack.c 2010-04-15 16:39:21.000000000 +0900
@@ -90,6 +90,12 @@
return;
}

+#if PHP_VERSION_ID >= 50300

  • if (!EG(active_symbol_table)) {
  • zend_rebuild_symbol_table(TSRMLS_C);
  • }
    +#endif
  • tmp_ht = XG(active_symbol_table);
    XG(active_symbol_table) = EG(active_symbol_table);
    zvar = xdebug_get_php_symbol(name, strlen(name) + 1);

TagsNo tags attached.
Operating SystemCentOS 5.4 x86_64
PHP Version5.3.1

Activities

derick

2010-04-20 13:41

administrator   ~0001451

This is fixed in rev. 3263, for the other bits of your patch (to xdebug_debug_zval()) I created bug 0000567. Thanks for the report and patch!

Issue History

Date Modified Username Field Change
2010-04-16 01:05 do_aki New Issue
2010-04-16 01:05 do_aki Operating System => CentOS 5.4 x86_64
2010-04-16 01:05 do_aki PHP Version => 5.3.1
2010-04-16 01:05 do_aki Xdebug Version => 2.1.0rc1
2010-04-20 13:41 derick Note Added: 0001451
2010-04-20 13:41 derick Status new => closed
2010-04-20 13:41 derick Resolution open => fixed
2016-07-31 12:36 derick Category Usage problems => Usage problems (Crashes)
2016-07-31 12:38 derick Category Usage problems (Crashes) => Usage problems (Wrong Results)
2020-03-12 16:35 derick Category Usage problems (Wrong Results) => Variable Display
2020-03-12 16:38 derick Category Variable Display => Uncategorized