This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
RE: [Commit] gdb/pascal language 2 or 4 byte char support in strings
- From: "Pierre Muller" <muller at ics dot u-strasbg dot fr>
- To: "'Jonas Maebe'" <jonas dot maebe at elis dot ugent dot be>
- Cc: "'gdb-patches ml'" <gdb-patches at sourceware dot org>, "'FPC Core Developer List'" <core at freepascal dot org>, <gpc at gnu dot de>
- Date: Tue, 10 Feb 2009 15:59:27 +0100
- Subject: RE: [Commit] gdb/pascal language 2 or 4 byte char support in strings
- References: <000001c98b14$a4cb8d60$ee62a820$@u-strasbg.fr> <85964EC7-B6FF-4869-A5C1-B99D618FF69C@elis.ugent.be>
> -----Message d'origine-----
> De?: gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> owner@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@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
specified.
> , 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