| Summary: | Annoyances in the debugger Variables & Expressions views | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | z_Archived | Reporter: | Sam Boyer <tech> | ||||||
| Component: | PDT | Assignee: | PHP Debug <php.debug-inbox> | ||||||
| Status: | CLOSED FIXED | QA Contact: | |||||||
| Severity: | normal | ||||||||
| Priority: | P3 | CC: | d_kelsey, lapistano, petyo_tanchev | ||||||
| Version: | unspecified | ||||||||
| Target Milestone: | --- | ||||||||
| Hardware: | PC | ||||||||
| OS: | All | ||||||||
| Whiteboard: | |||||||||
| Attachments: |
|
||||||||
Created attachment 173991 [details]
heavy nesting ugliness
Here's another screenshot illustrating how quickly nested arrays get unreadable, especially if they're indexed arrays. Sorry if it's gratuitous, this just...really bothers me :)
using PDT 2.2 with php 5.2.13 and xdebug 2.0.5 I don't see the behaviour regarding arrays and objects you describe. So which version of xdebug are you using with php 5.3 ? what are the xdebug (ie entries in php.ini) do you have for xdebug ? As for strings, this was introduced in PDT 2.1. in php (prior to release 6) php strings can contain and do contain binary data. In order for users to be able to inspect this binary data, the ability to list the binary data was introduced. There is no way to turn it off. xdebug 2.1 has changed the way it outputs information regarding arrays and objects. This causes PDT 2.1 and higher to go down a different path of logic and thus generate the [x..y] format even when the complete amount of information is presented. This has now been fixed in HEAD. Regarding the string expansion, you could raise a bugzilla enhancement to add the ability to turn off the string expansion if you wish. (In reply to comment #2) > using PDT 2.2 with php 5.2.13 and xdebug 2.0.5 I don't see the behaviour > regarding arrays and objects you describe. So which version of xdebug are you > using with php 5.3 ? what are the xdebug (ie entries in php.ini) do you have > for xdebug ? > Yep, as I said, the behavior pictured _only_ appears as of PHP5.3. Like I mentioned, I've tried every possible ini file combination, so reporting it is a little pointless. But, as requested, this is the configuration running on my server right now, which has XDebug 2.1rc1 on php 5.3.2-pl0-gentoo: xdebug.remote_enable = 1 xdebug.remote_connect_back = 1 xdebug.default_enable = On xdebug.collect_params = 2 xdebug.collect_assignments = 1 xdebug.overload_var_dump = 1 xdebug.scream = 1 xdebug.show_local_vars = 1 xdebug.var_display_max_depth = 1 xdebug.var_display_max_data = 256 None of that is relevant to how data is channeled back through the debugger though, according to both the XDebug documentation and my experimentation. This issue also appears on my macbook when running 5.3, and disappears as soon as I pop over to 5.2. It does it in helios and galileo, and it's done it in both XDebug 2.0.5 and 2.1. 5.3 is pretty clearly the cause, here. > As for strings, this was introduced in PDT 2.1. in php (prior to release 6) php > strings can contain and do contain binary data. In order for users to be able > to inspect this binary data, the ability to list the binary data was > introduced. There is no way to turn it off. That sidesteps my original point. I'm aware that strings can contain all sorts of unfriendly data, and I agree that that makes the feature essential. But my point is that it being essential for a very small percentage of cases isn't justification for requiring it to ALWAYS be present, cluttering an already very busy UI. Without knowing the underlying architecture at all, my gut reaction is that it ought to just add another checkbox to the XDebug configuration that governs whether or not strings are expandable. (In reply to comment #3) > xdebug 2.1 has changed the way it outputs information regarding arrays and > objects. This causes PDT 2.1 and higher to go down a different path of logic > and thus generate the [x..y] format even when the complete amount of > information is presented. This has now been fixed in HEAD. > > Regarding the string expansion, you could raise a bugzilla enhancement to add > the ability to turn off the string expansion if you wish. Mm, replied before seeing yours. OK, cool on the first bit, though I'd _swear_ it was the switch to php5.3 that did it. I should recheck with 5.2 again. I'll file such an issue. hi folks,
I do have the same problem using latest PDT release and PHP5.3.2 with Xdebug v.2.0.5
My configuration:
PDT:
Eclipse for PHP Developers
Version: Helios Release
Build id: 20100617-1415
~$ php -v
PHP 5.3.2-1ubuntu4.2 with Suhosin-Patch (cli) (built: May 13 2010 20:01:00)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with Xdebug v2.0.5, Copyright (c) 2002-2008, by Derick Rethans
~$ less xdebug.ini
xdebug.remote_enable=true
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1 ;if debugging on remote server, put client IP here
xdebug.allowed_clients=127.0.0.1
xdebug.remote_port=9000
; var_dump
xdebug.overload_var_dump=on
; profiler php_value
xdebug.profiler_enable_trigger=on
xdebug.profiler_enable=off
xdebug.profiler_output_dir=/tmp/xdebug/profiling
Assuming closed. Will be reopened if needed by the community |
Created attachment 173990 [details] annotated screenshot Two annoyances to complain about here when debugging with XDebug, both highlighted in the attached screenshot. The first problem (red in the screenshot) only start manifesting when I switched over to PHP5.3. It happens in galileo pdt (2.1.1) and helios (2.2) as well. In the debugging perspective's Variables & Expressions views, when arrays and objects are expanded they're no longer immediately list all the contained values; rather, you first have to click through a middle layer indicating the number of elements. In the past, this middle layer only appeared when the number of elements exceeded the 'max children' I'd set in Preferences -> PHP -> Debug -> XDebug Settings - and in those cases, I appreciate it. Now, though, this middle-layer element counter ALWAYS appears, even for a totally empty array. I find this very frustrating, as not only does it double the number of clicks it takes for me to get to data (and I deal a lot with heavily nested arrays/objects), but it means I run out of horizontal space in the variable name column very quickly - and as you can see from the screenshot, I don't have a lot to start with. The second issue (yellow) wasn't around when I first start using PDT in early 2008, but appeared later on that year, and I never did figure out what I changed that caused the switch. Strings are 'expandable' in the Variables & Expressions views, and when expanded, each byteval that composes the string is listed. While that information is essential if you really need to keep a keen eye on character encoding, it's useless to me well over 99% of the time. And I cannot find _any_ way to shut it off. I find it annoying because other quasi-scalar values aren't expandable, and I can use the presence/absence of those expandy arrows to tell using only my peripheral vision how many arrays/objects I have vs. strings/ints/floats. Pretty cosmetic and minor, though, so I'm only complaining because it's in the same family as the other problem, at least in my head. I've experimented with every XDebug setting I can think of, and nothing changes either of these.