This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Python and target-async
- From: Pedro Alves <pedro at codesourcery dot com>
- To: gdb at sourceware dot org
- Cc: Kevin Pouget <kevin dot pouget at gmail dot com>
- Date: Tue, 31 May 2011 18:44:25 +0100
- Subject: Re: Python and target-async
- References: <BANLkTimGZ3DSbkRts1Oc8_ZyrAG3hi7PzA@mail.gmail.com>
I've read this about 5 times, and I still have trouble
identifying exactly what it is you're saying is broken.
Is is the second example showing a couple of frames
before the "waitpid" line? In your example you
have "set target-async on" twice. Was that a pasto?
What exactly do you think is wrong, and what did you
expect was the right output?
On Tuesday 31 May 2011 14:51:45, Kevin Pouget wrote:
> Hello,
>
> I'm facing a problem with Python not behaving correctly when
> "target-async" is on. I'll report it in the bugtracker if someone else
> confirms the problem:
>
> (replace PID by any process ID to which you can attach)
>
> > (gdb) set target-async on
> > (gdb) py gdb.execute("attach PID") ; gdb.execute("where")
> > 0x0000003cbd0aa47e in waitpid () from /lib64/libc.so.6
> > #0 0x0000003cbd0aa47e in waitpid () from /lib64/libc.so.6
> > #1 0x000000000043ede2 in ?? ()
> > #2 0x000000000044005f in wait_for ()
> > #3 0x0000000000430c45 in execute_command_internal ()
> > #4 0x0000000000430e0e in execute_command ()
> > #5 0x000000000041d526 in reader_loop ()
> > #6 0x000000000041ccde in main ()
> > (gdb) detach
> > Detaching from program ...
> > (gdb) set target-async on
> > (gdb) py gdb.execute("attach PID") ; gdb.execute("where")
> > #0 0x0000003cbd0aa47e in ?? ()
> > #1 0x0000000000000000 in ?? ()
> > 0x0000003cbd0aa47e in waitpid () from /lib64/libc.so.6
>
> --> the inferior can't be access normally
>
> the problem lies in the fact that GDB doesn't return from Python
> between the `attach' and the `where', (the situation occurs during a
> Python function calls as well).
>
> > (gdb) set target-async on
> > (gdb) py gdb.execute("attach PID")
> > (gdb) py gdb.execute("where")
>
> works correctly.
>
>
> I'm not sure there is something I can do to solve it, any idea what I
> should look for?
>
>
> thanks,
>
> Kevin
>
--
Pedro Alves