[Commit] gdb/pascal language 2 or 4 byte char support in strings

Pierre Muller muller at ics.u-strasbg.fr
Tue Feb 10 15:59:27 CET 2009

> -----Message d'origine-----
> De : gdb-patches-owner at sourceware.org [mailto:gdb-patches-
> owner at sourceware.org] De la part de Jonas Maebe
> Envoyé : Tuesday, February 10, 2009 3:32 PM
> À : Pierre Muller
> Cc : 'gdb-patches ml'; 'FPC Core Developer List'; gpc at gnu.de
> Objet : Re: [Commit] gdb/pascal language 2 or 4 byte char support in
> strings
> On 10 Feb 2009, at 01:15, Pierre Muller wrote:
> >  I committed the patch below to add
> > support for fixed width chars
> > greater than 1 for pascal language.
> >
> >  This works nicely for Free Pascal,
> > I couldn't test it for GPC
> > because I didn't find out if those kind of char are supported...
> Hi Pierre,
> A while ago I wrote a similar patch. I didn't submit it yet because I
> didn't find time to write explanations why I did everything and on
> writing test cases for all changes.
> Anyway, it's in attachment (it's against the p-*.c files before your
> patch though). Some comments:
> * pascal-dwarf-char.patch:
> This one is independent from and complementary to your patch : it
> properly sets the TYPE_CODE DW_ATE_signed_char/DW_ATE_unsigned_char to
> TYPE_CODE_CHAR in case of Pascal (rather than only for Ada and Modula-
> 2)
 OK, I will submit this patch to the dwarf maintainer.
> * pascalchar.patch:
> a) I removed all situations in the Pascal string handling where
> "TYPE_CODE (elttype) == TYPE_CODE_INT" is interpreted as a character.
> I don't know the original reason for having it there though, but maybe
> it was because of the lack of a)? At least the stabs debug info of both
> FPC and GPC results in a char (negative type number -2, as mentioned at
> http://sourceware.org/gdb/current/onlinedocs/stabs_5.html#SEC35)

  I agree with you with one exception:
I think that TYPE_CODE_INT should be accepted if the /s format option was

> , which gdb turns into a TYPE_CODE_CHAR. I don't know about GPC and
> Dwarf, but FPC and Dwarf results in DW_ATE_unsigned_char. The main
> problem with considering TYPE_CODE_INT as characters is that arrays of
> bytes (and now presumably also of words and cardinals) are printed as
> character arrays, which is quite annoying.
> b) my changes to p-lang.c were basically a copy/paste if all changes in
> the C version of print_string to support characters of different widths

  I will try to modify the pascal code so that 
only TYPE_CODE_CHAR and /s generated string output.

Pierre Muller
Pascal language support maintainer for GDB

More information about the Gpc mailing list