From: Joel Brobecker <brobecker@adacore.com>
To: Hui Zhu <teawater@gmail.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>
Subject: Re: [RFC] Let "gcore" command accept a suffix argument
Date: Wed, 06 Jan 2010 07:58:00 -0000 [thread overview]
Message-ID: <20100106075757.GF24777@adacore.com> (raw)
In-Reply-To: <daef60381001052257q2068a8fbmaacd026b8d5cef49@mail.gmail.com>
> 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.
> + 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).
--
Joel
next prev parent reply other threads:[~2010-01-06 7:58 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 [this message]
2010-01-09 9:55 ` Hui Zhu
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=20100106075757.GF24777@adacore.com \
--to=brobecker@adacore.com \
--cc=gdb-patches@sourceware.org \
--cc=msnyder@vmware.com \
--cc=stan@codesourcery.com \
--cc=stanshebs@earthlink.net \
--cc=teawater@gmail.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