Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Michael Snyder <msnyder@redhat.com>
To: tromey@redhat.com
Cc: gdb-patches@sources.redhat.com, green@redhat.com
Subject: Re: Patch: printing java `char' values
Date: Mon, 06 May 2002 17:05:00 -0000	[thread overview]
Message-ID: <3CD71722.DD3585A4@redhat.com> (raw)
In-Reply-To: <877kmh8a6r.fsf@creche.redhat.com>

Hi Tom, 

For future reference, the convention here is that "Patch" means
"I've checked this in, I'm just letting you know".  What you want
is probably "RFC" (request for comment).


Tom Tromey wrote:
> 
> Compile the appended java program with `gcj -g'.  Run gdb on it, and
> run it with the argument "abc".  Put a breakpoint on main and step
> past the assignment.  Then do `p c'.
> 
> I get:
> 
>     (gdb) p c
>     $1 = 97
> 
> This is wrong.  Debugging gdb a little, I found that in java_val_print
> we are seeint a TYPE_CODE_INT and not a TYPE_CODE_CHAR.

I'm not sure why that's happening, but it tickles my familiar-bone.
Has someone else recently posted about something related to this?
Maybe Per Bothner?

> The appended hack fixes the problem for me.  I'm sure there is some
> better way to handle this, but I don't know what.  Why would I end up
> with a TYPE_CODE_INT here?

I agree that this is not the correct fix, but that it
does help illustrate the problem.  Unfortunately, I don't
know who, if anyone, is actively maintaining Java these days.

Anthony?

> public class x
> {
>   public static void main (String[] args)
>   {
>     char c = args[0].charAt(0);
>     System.out.println(c);
>   }
> }
> 
> Index: ChangeLog
> from  Tom Tromey  <tromey@redhat.com>
> 
>         * jv-valprint.c (java_val_print): Add special case for Java char.
> 
> Index: jv-valprint.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/jv-valprint.c,v
> retrieving revision 1.9
> diff -u -r1.9 jv-valprint.c
> --- jv-valprint.c 21 Oct 2001 01:57:42 -0000 1.9
> +++ jv-valprint.c 6 May 2002 17:08:19 -0000
> @@ -451,9 +452,18 @@
>    register unsigned int i = 0; /* Number of characters printed */
>    struct type *target_type;
>    CORE_ADDR addr;
> +  enum type_code code;
> 
>    CHECK_TYPEDEF (type);
> -  switch (TYPE_CODE (type))
> +
> +  /* Sometimes a Java `char' shows up as an `int'.  So here we make a
> +     special case for that.  */
> +  code = TYPE_CODE (type);
> +  if (code == TYPE_CODE_INT && TYPE_LENGTH (type) == 2
> +      && ! strcmp (TYPE_NAME (type), "char"))
> +    code = TYPE_CODE_CHAR;
> +
> +  switch (code)
>      {
>      case TYPE_CODE_PTR:
>        if (format && format != 's')


  reply	other threads:[~2002-05-07  0:05 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-05-06 10:11 Tom Tromey
2002-05-06 17:05 ` Michael Snyder [this message]
2002-05-07 13:29   ` Tom Tromey
2002-05-07 15:45     ` Andrew Cagney
2002-05-07 13:43 ` Daniel Jacobowitz
2002-05-07 14:22 ` Michael Snyder
2002-05-07 14:35   ` Tom Tromey
2002-05-08 12:12     ` Michael Snyder
2002-05-08 12:47       ` Daniel Jacobowitz
2002-05-08 13:32         ` Tom Tromey
2002-05-08 13:46           ` Daniel Jacobowitz
2002-05-08 14:10             ` Michael Snyder
2002-05-08 14:20               ` Daniel Jacobowitz
2002-05-08 15:39                 ` Michael Snyder
2002-05-08 15:42       ` Tom Tromey
2002-05-08 16:52         ` Michael Snyder
2002-05-08 21:09           ` Tom Tromey
2002-05-09 11:09             ` Michael Snyder

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3CD71722.DD3585A4@redhat.com \
    --to=msnyder@redhat.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=green@redhat.com \
    --cc=tromey@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox