This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch] Fix uiout for execute_command_to_string
- From: Paul Bolle <pebolle at tiscali dot nl>
- To: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Sat, 04 Sep 2010 00:06:31 +0200
- Subject: Re: [patch] Fix uiout for execute_command_to_string
- References: <20100903180619.GA15409@host1.dyn.jankratochvil.net>
On Fri, 2010-09-03 at 20:06 +0200, Jan Kratochvil wrote:
> Redirected there also gdb_stdlog as it seems appropriate to me. That is
> remain unredirected gdb_stdin, gdb_stdtargin, gdb_stdtarg and gdb_stdtargerr,
> I do not much understand gdb_stdtarg* but it seems to +/- match other
> redirections in GDB.
It seems I need the (trivial) patch below (to be applied on your recent
work) to also get the output from remote commands invoked by the python
command redirected to a string. Example:
foo = gdb.execute("monitor foo", to_string=True)
I can't recall exactly why this is needed. (It's about a week ago that I
noticed this, while trying to understand
https://bugzilla.redhat.com/show_bug.cgi?id=627506 ).
Paul
---
diff -up gdb-7.1.90.20100806/gdb/top.c.gdbstdt_arg gdb-7.1.90.20100806/gdb/top.c
--- gdb-7.1.90.20100806/gdb/top.c.gdbstdt_arg 2010-09-03 23:01:23.000000000 +0200
+++ gdb-7.1.90.20100806/gdb/top.c 2010-09-03 23:25:12.000000000 +0200
@@ -480,6 +480,7 @@ execute_command_to_string (char *p, int
make_cleanup_restore_ui_file (&gdb_stdout);
make_cleanup_restore_ui_file (&gdb_stderr);
make_cleanup_restore_ui_file (&gdb_stdlog);
+ make_cleanup_restore_ui_file (&gdb_stdtarg);
if (ui_out_redirect (uiout, str_file) < 0)
warning (_("Current output protocol does not support redirection"));
@@ -489,6 +490,7 @@ execute_command_to_string (char *p, int
gdb_stdout = str_file;
gdb_stderr = str_file;
gdb_stdlog = str_file;
+ gdb_stdtarg = str_file;
execute_command (p, from_tty);