facebook/hhvm — pull request #3670 by jlreyes (2014-09-05 04:46:32+00:00)
Title: Xdebug remote debugging compatibility and bug fixes

This diff finishes the last two remote debugging commmands property_get and property_set, fixes remote debugging bugs, and adds compatibility fixes to ensure remote debugging fully works with phpstorm, komodo, netbeans, and vim.

Additions:
* Implemented property_set and property_value and added test for property_set
* Updated tests broken with the below changes
* General cleanup

Compatibility:
* Added $GLOBALS variable to superglobal context
* Filtered out superglobals from the local context
* Context ids should start at 0 for komodo to be happy
* Replaced calls to `xdebug_get_php_symbol` with an eval. There were bugs with `xdebug_get_php_symbol` and I discovered phpstorm, komodo, netbeans, and the vim plugin always just send an expression.
* stack_get was being used by ides differently than expected. E.g. level 0 is intended to be the current location

Bug Fixes:
* xdebug.idekey ini setting was incorrectly named xdebug.ide_key
* When outputting arrays to xml the page was always set to 0
* The variable exporter needed state to be reset in between exports
* When adding breakpoint info to xml nodes data needed to be duplicated as the breakpoint could be deleted before the node was sent
* names in property_get were assumed to be base64 encoded
* bugs in stack_get line location