Re: Define python hooks

nojhan <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAJRERJX7PabS0hZ5rhk1p3uftFZHFXudKy9LyawoNzthsBSU2A@mail.gmail.com>
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.
Additionally, I did not find how to access the arguments of the
command.
2) Overload the existing command with a python class binded on the
same command name. Failed because of infinite recursion.
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.

Should I fill a feature request/bug report for points 1 and/or 2?

-- 
nojhan

On Tue, Oct 28, 2014 at 12:22 AM, Doug Evans <[email protected]> wrote:
> gdb.execute (command, to_string=True) will return the output as a python string.
>
> As for what's the best way to go, I'm not sure.
>
> On Mon, Oct 27, 2014 at 2:17 AM, nojhan <[email protected]> wrote:
>> Thanks.
>> I would want to manipulate the output of several existing commands with python.
>>
>> Is there a way to get the output of the command in python (something
>> like a gdb.execute that would return the output)?
>> Or should I use a redirection to a named pipe to communicate with gdb?
>> Or maybe it would be a better option to overload existing commands
>> with a python class that would execute them?
>>
>> --
>> nojhan
>>
>> On Sun, Oct 26, 2014 at 12:57 AM, Doug Evans <[email protected]> wrote:
>>> On Sat, Oct 25, 2014 at 2:08 AM, nojhan <[email protected]> wrote:
>>>> Hello,
>>>>
>>>> I'm currently using several of hook-* and hookpost-* functions with
>>>> shell commands.
>>>> I was wondering if there was a way to define such hooks in pure python.
>>>>
>>>> For instance, I would like to import a module at startup and use it
>>>> across all the hooks to manipulate the output of the hooked commands.
>>>
>>> Hi.
>>>
>>> While one can't directly define hooks in python, one can still invoke
>>> python from hooks.
>>>
>>> E.g.
>>>
>>> define hookpost-step
>>> python
>>> ... python code ...
>>> end
>>> end
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.