MantisBT - Xdebug
View Issue Details
0001603XdebugFeature/Change requestpublic2019-01-09 08:302019-01-16 14:52
resolvedno change required 
0001603: Debugging user defined constants should be configurable
Certain web applications can have many user-defined constants (1000s or more, potentially). This can make debugging, stepping via IDE especially, very slow. In our application I can see around 2MB of network data passed to the debugger on each step.

Following [^] - I think that inclusion of defines data should be configurable by a flag in the ini file.

For now I have a locally patched version the disables the feature entirely (by reverting the commit [^]) but thats obviously a temporary solution.

Please let me know if I can contribute here.
1. Debug with an IDE (e.g. PhpStorm) and have xdebug connect to it over a TCP port (e.g. 9000)
2. Debug a script with 1000s of defined constants
3. Each step will be visibly slow
No tags attached.
Issue History
2019-01-09 08:30kshlomiNew Issue
2019-01-09 12:41derickNote Added: 0004797
2019-01-09 12:41derickAssigned To => derick
2019-01-09 12:41derickStatusnew => feedback
2019-01-09 13:14kshlomiNote Added: 0004798
2019-01-09 13:14kshlomiStatusfeedback => assigned
2019-01-09 16:52derickNote Added: 0004799
2019-01-15 10:20kshlomiNote Added: 0004803
2019-01-16 14:52derickNote Added: 0004807
2019-01-16 14:52derickStatusassigned => resolved
2019-01-16 14:52derickResolutionopen => no change required

2019-01-09 12:41   
This is only a feature in the protocol, and an IDE is free to request the User Defined Constants, or not. It's entirely up to the IDE to request this information, so why can't this be an option on the IDE side?

I am not keen adding more INI settings to Xdebug, as there are already way too many.
2019-01-09 13:14   
Hi Derick,
Thanks for responding so fast.
Are you referring to the context_get command ? If so - which call would fetch only the user-defined constants or, alternatively, omit them ?

If this is indeed a protocol feature I could try and get in touch with the PHPStorm developers.
2019-01-09 16:52   
Yes indeed. The "-c 2" in context_get is a selector for which context to return. The context_names command can be used to find out which contexts there are, and "2" is the index for User Defined Constants: [^]

An IDE can choose not to fetch the User Defined Constants, by just not running "context_get -c 2".
2019-01-15 10:20   
Opened a ticket for PHPStorm : [^]
Would appreciate your upvote, thanks!
2019-01-16 14:52   
I've added a comment to the PhpStorm ticket. As there is nothing more to do here, I will close the ticket. I'll keep an eye on what the PhpStorm team says.