This is the mail archive of the mailing list for the GDB project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: implementing eval command

On Fri, Feb 15, 2008 at 7:58 PM, Michael Snyder <> wrote:
> Moving this to "gdb" list, since it is not a patch.
>  On Thu, 2008-02-14 at 18:18 +0200, Yakov Lerner wrote:
>  > I'd like to make a patch that implements eval command, as follows.
>  > I have following idea to implement eval simply:
>  > Syntax of eval will be similar to the syntax of 'printf' command:
>  >          eval "string with %..." comma-separated-expressions
>  > Implementation relies on existing printf_command() function,
>  > by rewriting printf_command into pair of functions, one that computes
>  > result of printf as allocated string; both printf_command and eval_command
>  > will use compute_printf() function.
>  > What do you think ?
>  Hmmm, that would be one way of getting around the
>  limitations of some commands that can't accept expressions
>  as arguments (mentioned in another thread).
>  What do you see as the context for this eval command?
>  How do you imagine it will be used?

Apparently, the capability to insert variable into arbitrary part of
gdb command is missing in gdb. I hit this several days ago when I needed
to make a script that uses 'thread apply $num where' to a subset of threads
in a program that had hundreds of threads and I was told on the list that this
is impossible.

I also see other requests for eval command on the mailing list archive.
So, instead of enriching just 'thread apply' command to accept variable
(or maybe parenthesized expression) I thought it's much more generic
to have eval command in the end.

I thought about easy way to implement it, and then I got idea of using
the print-like format and comma-separated arg list.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]