This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] An implementation of pipe to make I/O communication between gdb and shell. [MinGW question]


On Tue, Aug 16, 2011 at 7:39 PM, Abhijit Halder
<abhijit.k.halder@gmail.com> wrote:
> On Tue, Aug 16, 2011 at 7:08 PM, Eli Zaretskii <eliz@gnu.org> wrote:
>>> Date: Tue, 16 Aug 2011 18:15:19 +0530
>>> From: Abhijit Halder <abhijit.k.halder@gmail.com>
>>> Cc: Eli Zaretskii <eliz@gnu.org>, sergiodj@redhat.com, tromey@redhat.com,
>>> ? ? ? pedro@codesourcery.com, gdb-patches@sourceware.org
>>>
>>> --- src/gdb/NEWS ? ? ?2011-08-14 07:27:51.582233000 +0530
>>> +++ dst/gdb/NEWS ? ? ?2011-08-14 07:50:38.562234498 +0530
>>> @@ -64,6 +64,9 @@
>>>
>>> ?* New commands "info macros", and "info definitions" have been added.
>>>
>>> +* New command "pipe" has been added to make GDB command output available to the
>>> + ?shell for processing.
>>> +
>>> ?* Changed commands
>>
>> This part is okay.
>>
>>> +void
>>> +_initialize_pipe (void)
>>> +{
>>> + ?add_cmd ("pipe", no_class, pipe_command, _("\
>>> +Create pipe to pass gdb-command output to the shell for processing.\n\
>>> +Arguments are a delimiter, followed by a gdb-command, then the same delimiter \
>>> +again and finally a shell-command."),
>>
>> This doc string should say something about what can be the delimiter.
>>
>> What about the manual? ?(Apologies if I already reviewed that part:
>> this has been a very long thread.)
> I have not yet got a chance to work on document part. I am currently
> working on it.
>>
>> Thanks.
>>
>
Added test-case for this new command. Please review this.

Thanks,
Abhijit Halder
diff -rup src/gdb/testsuite/gdb.base/pipe.c dst/gdb/testsuite/gdb.base/pipe.c
--- src/gdb/testsuite/gdb.base/pipe.c	2011-08-16 22:37:37.785351001 +0530
+++ dst/gdb/testsuite/gdb.base/pipe.c	2011-08-16 22:32:40.213350709 +0530
@@ -0,0 +1,27 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2011 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+
+int main ()
+{
+#ifdef usestubs
+  set_debug_traps ();
+  breakpoint ();
+#endif
+  return 0; /* end main */
+}
diff -rup src/gdb/testsuite/gdb.base/pipe.exp dst/gdb/testsuite/gdb.base/pipe.exp
--- src/gdb/testsuite/gdb.base/pipe.exp	2011-08-16 22:37:45.969351119 +0530
+++ dst/gdb/testsuite/gdb.base/pipe.exp	2011-08-16 22:35:34.117356781 +0530
@@ -0,0 +1,49 @@
+#   Copyright 2011 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+#
+# test gdb pipe commands
+#
+
+if $tracelevel then {
+    strace $tracelevel
+}
+
+set testfile "pipe"
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+    untested pipe.exp
+    return -1
+}
+
+if [get_compiler_info ${binfile}] {
+    return -1
+}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir ${srcdir}/${subdir}
+gdb_load ${binfile}
+
+set end_main [gdb_get_line_number " end main " $srcfile]
+
+if ![runto_main] then {
+    fail "Can't run to main"
+    return 0
+}
+
+gdb_test "pipe | bt | grep \"main\"" "\#0.*main.*().*at.*${srcfile}:${end_main}"
+

Attachment: ChangeLog
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]