python interface gdb.execute() to_string is useless
Emiliano Testa
etesta@undo.io
Wed Jul 1 12:26:39 GMT 2020
Hello,
I'm using the gdb APIs to implement a command and I want to control when
the output of a certain command is sent to the console.
To this end I'm using
s = gdb.execute(cmd, to_string=True)
unfortunately it doesn't seem to do what is says it would:
I can see s is not None when to_string=True BUT it doesn't contain the
output that it should. It went to the console instead.
I think this is a bug.
Many thanks
Emiliano
The output I get (gdb version is "GNU gdb (Ubuntu 8.1-0ubuntu3.2)
8.1.0.20180409-git"):
(gdb) python
>print ("Before")
>s = gdb.execute("continue", to_string=True)
>print ("After")
>print (s)
>end
Before
loop_then_segv.c: i=0
loop_then_segv.c: i=1
loop_then_segv.c: i=2
loop_then_segv.c: i=3
loop_then_segv.c: i=4
loop_then_segv.c: i=5
loop_then_segv.c: i=6
loop_then_segv.c: i=7
loop_then_segv.c: i=8
loop_then_segv.c: i=9
causing deliberate segv pid=11290.
Program received signal SIGSEGV, Segmentation fault.
0x0804855c in main () at tests/test/generic/loop_then_segv.c:26
26 *(volatile int*)NULL = 0;
After
(gdb) python
>print ("Before")
>s = gdb.execute("continue", to_string=False)
>print ("After")
>print (s)
>end
Before
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
After
None
(gdb)
--
Emiliano Testa | Software Engineer | Direct: (+44)7512468305 |
etesta@undo.io
Undo <https://undo.io> | Accelerate software defect resolution by
eliminating the guesswork in failure diagnosis
CI Best Practice: Go Green, Stay Green
<https://info.undo.io/go-green-stay-green>
More information about the Gdb
mailing list