RFR(XS): 7154809 JDI: update JDI/JDB debugee commandline option parsing (allow nested comma delimited options) + sponsor request

Dmitry Samersoff Dmitry.Samersoff at oracle.com
Tue Mar 27 03:21:38 PDT 2012


Markus,

> main=some.namespace.java.class,

" (or ') is valid character in a file name so it's better not to change it.

-Dmitry



On 2012-03-27 14:08, Markus Grönlund wrote:
> Dmitry,
> 
> Thanks, yes I made it very optimistic at this point.
> 
> Maybe could be made more intelligent. However, I didn’t see the need for it really as no existing option values are allowed to contain ' ' in them.
> 
> The java debugger has a certain amount of predefined delimited set of options, for example:
> 
> vmexec=java,
> 
> options= "-client" "-XX:+PrintVMOptions", 
> 
> main=some.namespace.java.class,
> 
> 
> /Markus
> 
> 
>  
> 
>> -----Original Message-----
>> From: Dmitry Samersoff
>> Sent: den 27 mars 2012 11:59
>> To: Markus Grönlund
>> Cc: serviceability-dev at openjdk.java.net; hotspot-runtime-
>> dev at openjdk.java.net
>> Subject: Re: RFR(XS): 7154809 JDI: update JDI/JDB debugee commandline
>> option parsing (allow nested comma delimited options) + sponsor request
>>
>> Markus,
>>
>> Your changes strip comma in the middle of argument as well:
>>
>> i.e.
>>
>> String value="\'Bl\"a\'";
>> System.out.println( value.replaceAll("['\"]", "") );
>>
>> Prints:  Bla
>>
>> Is it intentional?
>>
>> -Dmitry
>>
>>
>> On 2012-03-27 12:49, Markus Grönlund wrote:
>>> Hi all,
>>>
>>>
>>>
>>> I would like to ask for a review:
>>>
>>>
>>>
>>> Webrev: http://cr.openjdk.java.net/~mgronlun/7154809/webrev01/
>>>
>>>
>>>
>>> Bug/CR: 7154809 JDI: update JDI/JDB debugee commandline option
>> parsing
>>> (allow nested comma delimited options)
>>>
>>> (bug is not yet published on bugs.sun.com, I am attaching a copy of
>> the
>>> bug description to the mail below)
>>>
>>>
>>>
>>> Synopsis: 7154809 JDI: update JDI/JDB debugee commandline option
>> parsing
>>> (allow nested comma delimited options)
>>>
>>>
>>>
>>> Description:
>>>
>>> Passing in a double quoted value, such as "-XX:+PrintVMOptions" to
>> the
>>> debugee works today. But only because double-quoted options can be
>>> passed directly onto the actual VM command-line (where it is stripped
>> by
>>> the VM). What does not work is passing the debugee single-quoted
>> values
>>> such as '-XX:+PrintVMOptions', although the regexp in VMConnection
>> works
>>> ok for proper comma-delimting of option separation. However, single
>>> quoted values cannot be passed on directly to the VM, since the VM
>> does
>>> not strip these single quotes. Also, values which are contained
>> inside
>>> nested quotes like “” value “” and “’ value ‘”  will not work for the
>>> same reason.
>>>
>>>
>>>
>>> To allow for more flexibility in passing delimited values (which
>> needs
>>> to be quoted), VMConnection should strip out any quote qualifiers
>>> (single and/or double quotes) before passing the options onto the VM.
>>> Besides adding more flexibility in option passing, this also allows
>> for
>>> more reliable command-line argument handling/processing, as options
>> are
>>> always passed non-quoted to the VM.
>>>
>>>
>>>
>>> Small fix to VMConnection.java is considered safe and backwards
>> compatible.
>>>
>>>
>>>
>>> I would also kindly ask for a sponsor to help me with this putback.
>>>
>>>
>>>
>>> Thank you
>>>
>>> Markus
>>>
>>>
>>>
>>>
>>>
>>
>>
>> --
>> Dmitry Samersoff
>> Java Hotspot development team, SPB04
>> * There will come soft rains ...


-- 
Dmitry Samersoff
Java Hotspot development team, SPB04
* There will come soft rains ...


More information about the serviceability-dev mailing list