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
next prev parent 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