hg: jdk7/build/langtools: 6829575: 100028: Debug information is incomplete or missing

Jonathan Gibbons Jonathan.Gibbons at Sun.COM
Fri Apr 17 16:23:54 UTC 2009


On Apr 17, 2009, at 9:11 AM, Andrew Haley wrote:

> Jonathan Gibbons wrote:
>
>> It's one thing to be enabling more debug information if you set  
>> flags,
>> and/or making it more consistent, but I'm not happy with you removing
>> debug information by default.  At least from reading the changeset  
>> diff,
>> it seems there is no way to get what was previously the default  
>> amount
>> of debug info, which is source,lines (but not vars).
>>
>> Source and lines are good to get useful stack traces in the face of
>> exceptions, even if var information is not present.  var  
>> information is
>> typically not required in product builds.
>
> Oh dear.  I discussed this at considerable length with Kelly, whose
> suggestion it was to change
>
> ifeq ($(DEBUG_CLASSFILES), true)
>>  ANT_OPTIONS += -Djavac.debug=true
>>  ANT_OPTIONS += -Djavac.debuglevel=source,lines,vars
>> endif
>
> to be
>
>> ifeq ($(DEBUG_CLASSFILES), true)
>>  ANT_OPTIONS += -Djavac.debug=true
>>  ANT_OPTIONS += -Djavac.debuglevel=source,lines,vars
>> else
>>  ANT_OPTIONS += -Djavac.debug=false
>>  ANT_OPTIONS += -Djavac.debuglevel=
>> endif
>
> It was not my intention to break anything that already existed, but
> simply to add debuginfo where it was disabled.
>
> Can you please point me to exactly which hunks of my diff are  
> problematic?
> The only place I can see that might be a problem is javac.

If your intention was to ensure that debug info was added, then the  
changeset
for langtools (which you summarise above) would not seem to be  
necessary,
because the old code honored setting DEBUG_CLASSFILES to true.  It is
the new "else" branch that disables debug info if DEBUG_CLASSFILES is
not set that is problematic.

I accept this changeset is part of an overall larger set of changesets  
across
all repositories.  What exactly were the goals?  It seems to me it is  
arguably
desirable to have three settings (not two).
	All debugging on (source,lines,vars)
	Basic debugging on (source,lines)
	No debugging
There is arguably a fourth candidate for consideration, which is  
"local default"
which allows the choice to be made on a more fine-grained (albeit  
inconsistent)
basis.

-- Jon


>
>
> Thanks,
> Andrew.




More information about the build-dev mailing list