controlling gdb via python's pexpect
Greg Law
glaw@undo-software.com
Fri Nov 6 10:39:00 GMT 2009
fpga wrote:
>
>
> fpga wrote:
>> Can someone please give me an example of how this is done.
>> I'm afraid the documentation is not helping me.
>> Thx
>>
>
> George
> You've got further than I have!
> I tried to use subprocess but failed.
Yeah, pipes might appear to work at first if you're "lucky", but pretty
quickly you'll come unstuck due to problems with buffering.
Here's a trivial example for gdb with pexpect:
import pexpect, sys
child = pexpect.spawn( 'gdb a.out')
child.setlog( sys.stdout)
child.expect_exact ('(gdb) ')
child.send ('run\n')
child.expect_exact ('Program exited normally.')
child.expect_exact ('(gdb) ')
child.send ('quit\n')
child.expect( pexpect.EOF
Note that the pexpect.expect method takes a regular expression but
"expect_exact" doesn't. If you're going to use the expect method be
sure to escape things like parentheses.
Greg
--
Greg Law, Undo Software http://undo-software.com/
More information about the Gdb
mailing list