This is the mail archive of the gdb@sourceware.org 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] |
Here are the three complete examples, I hope this will be more clear. Or in a gist: https://gist.github.com/nojhan/c3bc28e2fa0608f21551 -- nojhan On Wed, Oct 29, 2014 at 7:39 PM, Doug Evans <xdje42@gmail.com> wrote: > On Tue, Oct 28, 2014 at 6:17 AM, nojhan <nojhan@nojhan.net> wrote: >> The documentation states that "It is valid for a hook to call the >> command which it hooks. If this occurs, the hook is not re-executed, >> thereby avoiding infinite recursion." >> But this does not seems to be true for the python API. >> >> Here what I tried: >> 1) Defining the hook as a python function that would gdb.execute the >> same command. Failed, because then the command is executed twice. > > You mean the hook is executed twice, right? > The docs say the hook won't be executed twice, but executing the > command twice is ok. > > I tried a trivial example and couldn't reproduce symptoms of the hook > being executed twice. > This is with current sources and 7.8 (release and branch). > > (gdb) define foo > echo Hi there.\n > end > (gdb) define hookpost-foo > echo Me again.\n > python gdb.execute("foo") > end > (gdb) foo > Hi there. > Me again. > Hi there. > (gdb) > >> Additionally, I did not find how to access the arguments of the >> command. > > I'm not sure what you mean here. > Access the arguments of the command from the hook? > I don't think we support that. > >> 2) Overload the existing command with a python class binded on the >> same command name. Failed because of infinite recursion. > > Infinite recursion because command -> hook -> command -> hook -> ... > or something else? > Just trying to understand if and how this is different from (1). > > If it's easy, providing an example so that we can see it for ourselves > will help. > >> 3) Use a named pipe to communicate. Failed (sort of) because one >> should sleep a variable amount of time waiting for the pipe to be >> consumed before returning to the prompt. > > I don't understand how this relates to (1) and (2). > Communicate what between whom?
Attachment:
test.gdbinit
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |