This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [python][patch] Add GDB Parameters functionality


On 04/28/2010 03:58 AM, Eli Zaretskii wrote:
>> Date: Tue, 27 Apr 2010 21:05:35 +0100
>> From: Phil Muldoon <pmuldoon@redhat.com>
>> CC: gdb-patches@sourceware.org
>>
>>> Can you give me a couple of examples of this "translation"?  Then I
>>> could suggest some simple explanation.
>>
>> The simplest example I can think of is escaping octal to print
>> characters.
> 
> Thanks, but I'm sure this feature was not introduced for such trivial
> uses.  Can you give a slightly more useful example?  Is this similar
> to C escapes in strings, such as \f, \n, etc., for example?

It does not do anything beyond what GDB does normally to strings that
have escape sequences, (that is, the Parameter functionality is
decoupled from the escape translation itself, this is GDB's encoding
mechanism).

A simple print command:

(gdb) print "\107\157\157\144\040\104\141\171"
$1 = "Good Day"

This is the same behaviour as the PARAM_STRING sequence in the
previous email.

This is different to PARAM_STRING_NOESCAPE. This just takes escape
sequences as literal, I.E.:

(gdb) set test-nestring-param \107\157\157\144\040\104\141\171
(gdb) show test-nestring-param 
Some string is "\107\157\157\144\040\104\141\171".

I've no idea  what escapes are allowed in the print/set/show
output commands, over what is allowed in say the echo command (for
example /t /n are just literals in the print command above, but have
meaning in the echo command).  I suspect this is just a mechanism to
allow multi-byte characters to be passed to a Parameter, but that is
just a guess. I've looked and looked into the manual for a node
explaining this, but cannot find it.  From the point of view of
parameters the difference is clear, PARAM_STRING will allow escapes to
be translated (or encoded or whatever verb we apply here), whereas
PARAM_STRING_NOESCAPE will not.  I'm not sure what node to point to
too explain this or what example to give.

Cheers,

Phil



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]