* archer/tromey patches left to merge
@ 2013-10-14 11:26 Phil Muldoon
2013-10-14 14:38 ` Tom Tromey
0 siblings, 1 reply; 4+ messages in thread
From: Phil Muldoon @ 2013-10-14 11:26 UTC (permalink / raw)
To: archer
Currently we still have some patches in the archer tromey/python
branch. I want to finally close this branch, so I decided to write an
email about what is left, and try to decide what we should do about
those patches. Here is what we have left:
* The -P, --python command line switch
This feature changes interpretation of the command line so that the
argument immediately following this switch is taken to be the name
of a Python script file. This option stops option processing;
subsequent options are passed to Python as sys.argv.
* gdb.cli() command.
This invokes a GDB command-line from a Python script. Usage of this
command (AFAIK) is exclusively with the -P switch. (You cannot run
this command from the gdb command line -- it generates an error
about recursive instantiatiations.)
I understand why this exists (to invoke an interactive GDB
command-line from a Python script), but I feel a little dubious
about it. Can we can construct a solid-use case for it?
* maint set python auto-load.
Enable/disable the auto-loading of Python scripts when an object
file is opened.
I think this patch is dead. It has been superseded by a the more
generic and powerful gdb auto-load commands.
* require command.
This command loads on demand a Python script that registers a gdb
command and which has not been auto-loaded at start-up. This makes
it easier to load GDB commands written in Python.
* ignore_errors command.
A wrapper which executes a single command, ignoring and suppressing
all errors.
I think this patch is dead. Users can deal with these exceptions
independently.
* pahole command.
Show the holes in a structure. Takes a type. Comment on those areas
where it thinks it detects a hole.
I think this command is generally useful. I think I remember some
comments about some problems with it. I am hoping the discussion
regarding the problems can be rewritten and posted here.
* caller_is convenience function.
This function determines if the calling function's name is equal to
a string that is passed to it. It takes an optional argument to
traverse n stack frames to find the function.
I think this a useful convenience function. It returns Boolean
values, so is useful in GDB via the $ convenience variable
functionality. An additional option that would be useful would be
the ability to tell the function to traverse the entire stack.
* caller_matches convenience function.
Same as above, but use re.match for the comparison. I think this
functionality should be rolled into caller_is.
* in_scope convenience function.
Return true if all the given variables and macros provided to it are
in scope. This function takes a variable amount of arguments, and
will only Return true if all the arguments are in scope.
There are a few other bits and pieces in there. Most, as far as I can
determine, are just some orphaned bits of code.
So, lets decide what we want to port to upstream and what we can get
rid of.
Cheers,
Phil
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: archer/tromey patches left to merge
2013-10-14 11:26 archer/tromey patches left to merge Phil Muldoon
@ 2013-10-14 14:38 ` Tom Tromey
2013-10-14 19:27 ` Phil Muldoon
0 siblings, 1 reply; 4+ messages in thread
From: Tom Tromey @ 2013-10-14 14:38 UTC (permalink / raw)
To: Phil Muldoon; +Cc: archer
Phil> * gdb.cli() command.
[...]
Phil> I understand why this exists (to invoke an interactive GDB
Phil> command-line from a Python script), but I feel a little dubious
Phil> about it. Can we can construct a solid-use case for it?
The idea is to be able to write a "mostly invisible" invocation of gdb.
That is, start gdb on some program and run it; perhaps setting
breakpoints or whatever in a script; and have this gdb not print
anything and otherwise be as invisible as possible. Then, if something
"interesting" happens, start up the gdb CLI.
Phil> * maint set python auto-load.
Phil> I think this patch is dead. It has been superseded by a the more
Phil> generic and powerful gdb auto-load commands.
Yes.
Phil> * require command.
Phil> This command loads on demand a Python script that registers a gdb
Phil> command and which has not been auto-loaded at start-up. This makes
Phil> it easier to load GDB commands written in Python.
This is obsolete. We automatically load these things now.
Phil> * ignore_errors command.
Phil> A wrapper which executes a single command, ignoring and suppressing
Phil> all errors.
Phil> I think this patch is dead. Users can deal with these exceptions
Phil> independently.
No, not dead, this comes up pretty regularly.
There was some upstream discussion about whether we want this or the old
"try-catch" patch that is in bugzilla.
Phil> * pahole command.
Phil> Show the holes in a structure. Takes a type. Comment on those areas
Phil> where it thinks it detects a hole.
Phil> I think this command is generally useful. I think I remember some
Phil> comments about some problems with it. I am hoping the discussion
Phil> regarding the problems can be rewritten and posted here.
I think there are bugs with virtual bases; and it only prints in C
syntax.
One alternative idea would be to simply make this an option to ptype.
That's probably better most of the time.
Phil> * caller_is convenience function.
Definitely upstream.
Phil> * caller_matches convenience function.
Phil> Same as above, but use re.match for the comparison. I think this
Phil> functionality should be rolled into caller_is.
I don't see how to roll it in, but definitely worth having upstream.
Phil> * in_scope convenience function.
Phil> Return true if all the given variables and macros provided to it are
Phil> in scope. This function takes a variable amount of arguments, and
Phil> will only Return true if all the arguments are in scope.
I don't know whether this one is useful or not.
There was a "bad" patch for this functionality upstream, so I wrote this
function to show how it could be done.
Tom
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: archer/tromey patches left to merge
2013-10-14 14:38 ` Tom Tromey
@ 2013-10-14 19:27 ` Phil Muldoon
2013-10-14 19:31 ` Tom Tromey
0 siblings, 1 reply; 4+ messages in thread
From: Phil Muldoon @ 2013-10-14 19:27 UTC (permalink / raw)
To: Tom Tromey; +Cc: archer
On 14/10/13 15:37, Tom Tromey wrote:
> Phil> * gdb.cli() command.
> [...]
Thanks for the reply Tom. Here is my plan, pending other comments.
* Merge caller_is and caller_matches functions.
I will keep them as two separate functions. My first thought was to
achieve the results of both with optional keyword arguments, but
after investigating a little this would probably end up with a
function heavily loaded with conditional keyword arguments. It
removes simplicity and adds complexity, so going with how it stands
now. I will add the option to search the entire stack. I will need
to write tests and documentation for both.
* Merge -P and gdb.cli()
These two patches will be merged as one submission as they seem to
be complimentary in a use-case sense. I will need to write tests
and documentation for both. The -P tests and the gdb.cli() tests
seem to be non-trivial in the GDB test suite.
* Merge ignore_errors command.
Tom provided a case that it is needed. Needs tests and
documentation.
* Merge in_scope function.
I think this is useful, so I will port it. Needs test and
documentation. (As an aside, I am not sure where we should document
these python only functions. Will discuss.)
* Merge pahole command.
I am not sure how to make this language agnostic, or even how to
make it complimentary with ptype. (We will discuss this more when
the time-slot arrives in my schedule to consider the effort of
porting it).
That's the order I intend to work on them as time allows. Lastly, I
will delete the defunct code orphans and remove the obsoleted commands
from the branch.
Cheers,
Phil
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: archer/tromey patches left to merge
2013-10-14 19:27 ` Phil Muldoon
@ 2013-10-14 19:31 ` Tom Tromey
0 siblings, 0 replies; 4+ messages in thread
From: Tom Tromey @ 2013-10-14 19:31 UTC (permalink / raw)
To: Phil Muldoon; +Cc: archer
Phil> * Merge pahole command.
Phil> I am not sure how to make this language agnostic, or even how to
Phil> make it complimentary with ptype. (We will discuss this more when
Phil> the time-slot arrives in my schedule to consider the effort of
Phil> porting it).
The idea would be to put it in the C code.
A separate commands, as it is now, is definitely simpler.
I think it is just a bit odd from a UI perspective.
Tom
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-10-14 19:31 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-14 11:26 archer/tromey patches left to merge Phil Muldoon
2013-10-14 14:38 ` Tom Tromey
2013-10-14 19:27 ` Phil Muldoon
2013-10-14 19:31 ` Tom Tromey
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).