Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Hui Zhu <teawater@gmail.com>
To: Joel Brobecker <brobecker@adacore.com>
Cc: Stan Shebs <stanshebs@earthlink.net>,
	Tom Tromey <tromey@redhat.com>,
	 	Stan Shebs <stan@codesourcery.com>,
	Michael Snyder <msnyder@vmware.com>,
	 	gdb-patches ml <gdb-patches@sourceware.org>,
	Eli Zaretskii <eliz@gnu.org>
Subject: Re: [RFC] Let "gcore" command accept a suffix argument
Date: Sat, 09 Jan 2010 09:55:00 -0000	[thread overview]
Message-ID: <daef60381001090154m36f5cf15x9f76b7073e4d126@mail.gmail.com> (raw)
In-Reply-To: <20100106075757.GF24777@adacore.com>

Thanks Joel,

On Wed, Jan 6, 2010 at 15:57, Joel Brobecker <brobecker@adacore.com> wrote:
>> 2010-01-06  Hui Zhu  <teawater@gmail.com>
>>       * printcmd.c (ctype.h): New include.
>>       (eval_command): New function.
>>       (_initialize_printcmd): New command "eval".
>
> This is looking interesting :). A few comments:
>
>  * what is the exact semantics of the eval command? I looked at
>    the implementation, and I'm not I understand, or what I understand
>    does not necessarily makes sense to me.
>
>    So, in plain English first, what is the eval command expected
>    to do, in particular, what parts and how will the command translate
>    in the argument that gets passed.
>
>  * implementation-wise:
>
>> +#define CMDSIZE 1024
>> +  char cmd[CMDSIZE + 1];
>
> The GNU Coding Standard explicitly recommend against hard-coded
> arbitrary limitations like these. In particular, your implementation
> seems to just silently truncate the result if the user uses
> an argument whose result does not fit in your CMDSIZE.
>
> I think the implementation should allow for the argument to grow
> to any size.

It will be change.

>
>> +              if (strlen (eval_begin))
>> +                {
>> +                  value = parse_and_eval (eval_begin);
>> +
>> +                  switch (TYPE_CODE (value_type (value)))
>> +                    {
>> +                      case TYPE_CODE_ARRAY:
>> +                        LA_GET_STRING (value, &buffer, &length,
>> +                                       &char_type, &la_encoding);
>> +                       break;
>> +                      case TYPE_CODE_INT:
>> +                        buffer = plongest (value_as_long (value));
>> +                        length = strlen (buffer);
>> +                        break;
>> +                      default:
>> +                        buffer = eval_begin;
>> +                        length = exp - eval_begin;
>> +                        break;
>> +                    }
>> +
>> +                  if (length > CMDSIZE - (cmdp - cmd))
>> +                    length = CMDSIZE - (cmdp - cmd);
>> +                  memcpy (cmdp, buffer, length);
>> +                  cmdp += length;
>
> I think you should print "value_print" instead of doing the printing
> yourself. Your implementation is missing a lot of other cases that
> you need to handle (eg: TYPE_CODE_RANGE, just to mention one).
>

This value will be convert to string and  execute_command (cmd,
from_tty); will use it.
value_print print the value VAL in C-ish syntax on stream STREAM
according to OPTIONS.
But cannot find a example how to do it, could you help me with it?

Best regards,
Hui


  reply	other threads:[~2010-01-09  9:55 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4B11DA3C.3000203@vmware.com>
     [not found] ` <daef60380911300437o4c616eb2v5ad7bfe99bd3c5e9@mail.gmail.com>
     [not found]   ` <20091130162246.GE4034@adacore.com>
     [not found]     ` <4B141157.3070709@vmware.com>
     [not found]       ` <20091130185341.GI4034@adacore.com>
     [not found]         ` <4B141469.5030402@vmware.com>
     [not found]           ` <20091130190619.GJ4034@adacore.com>
     [not found]             ` <4B1428F0.7090608@vmware.com>
     [not found]               ` <daef60380912091827u6ff7127bp1d03998a40932914@mail.gmail.com>
2009-12-10  2:32                 ` Hui Zhu
2009-12-10 17:08                   ` Tom Tromey
2009-12-11 10:06                     ` Joel Brobecker
2009-12-11 18:25                       ` Tom Tromey
2009-12-12  8:33                         ` Hui Zhu
2009-12-13  4:05                           ` Hui Zhu
2009-12-14 17:09                           ` Tom Tromey
2009-12-15  1:57                             ` Hui Zhu
2009-12-15 19:21                               ` Tom Tromey
2009-12-16  3:58                                 ` Hui Zhu
2009-12-16 15:49                                   ` Stan Shebs
2009-12-17  2:45                                     ` Hui Zhu
2009-12-17  4:26                                       ` Joel Brobecker
2009-12-17  4:29                                         ` Michael Snyder
2009-12-17  9:32                                           ` Andreas Schwab
2009-12-21 20:15                                     ` Tom Tromey
2009-12-31  0:18                                       ` Stan Shebs
2010-01-04 14:42                                         ` Hui Zhu
2010-01-06  6:57                                           ` Hui Zhu
2010-01-06  7:58                                             ` Joel Brobecker
2010-01-09  9:55                                               ` Hui Zhu [this message]
2010-01-09 10:56                                                 ` Joel Brobecker
2010-01-09 15:18                                                   ` Hui Zhu
2010-01-10  5:43                                                     ` Joel Brobecker
2010-01-10 13:30                                                       ` Hui Zhu
2010-01-10 14:00                                                         ` Joel Brobecker
2010-01-10 14:16                                                           ` Hui Zhu
2010-06-21 15:05                                                           ` Hui Zhu
2010-06-21 16:57                                                             ` Joel Brobecker
2010-06-21 21:34                                                               ` Joel Brobecker
2010-06-21 21:40                                                             ` Tom Tromey
2010-06-22  7:29                                                               ` Hui Zhu
2010-06-22  9:50                                                                 ` Pedro Alves
2010-06-22 15:21                                                                 ` Joel Brobecker
2010-06-22 18:05                                                                 ` Eli Zaretskii
2010-06-23  2:03                                                                   ` Hui Zhu
2010-06-23 16:59                                                                     ` Joel Brobecker
2010-06-24  6:13                                                                       ` Hui Zhu
2010-01-06 10:13                                             ` Eli Zaretskii

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=daef60381001090154m36f5cf15x9f76b7073e4d126@mail.gmail.com \
    --to=teawater@gmail.com \
    --cc=brobecker@adacore.com \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    --cc=msnyder@vmware.com \
    --cc=stan@codesourcery.com \
    --cc=stanshebs@earthlink.net \
    --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