public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [rfc v3][0/6] Remote /proc file access
@ 2012-01-17 19:41 Ulrich Weigand
  2012-01-17 20:19 ` Pedro Alves
  2012-01-18 11:46 ` Joel Brobecker
  0 siblings, 2 replies; 11+ messages in thread
From: Ulrich Weigand @ 2012-01-17 19:41 UTC (permalink / raw)
  To: gdb-patches; +Cc: palves, brobecker

Hello,

this implements the suggestions I received as feedback from
the v2 version of the patch series.

I've tested this series on i386 native and remote, as well as
on ARM remotely; no change to the previous version.

Joel, would you mind re-running the tests on a procfs target
since this patch does change the procfs.c file, which I cannot
test ...   Thanks!

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [rfc v3][0/6] Remote /proc file access
  2012-01-17 19:41 [rfc v3][0/6] Remote /proc file access Ulrich Weigand
@ 2012-01-17 20:19 ` Pedro Alves
  2012-01-17 20:33   ` Ulrich Weigand
  2012-01-18 11:46 ` Joel Brobecker
  1 sibling, 1 reply; 11+ messages in thread
From: Pedro Alves @ 2012-01-17 20:19 UTC (permalink / raw)
  To: Ulrich Weigand; +Cc: gdb-patches, brobecker

On 01/17/2012 07:40 PM, Ulrich Weigand wrote:
> Hello,
> 
> this implements the suggestions I received as feedback from
> the v2 version of the patch series.
> 
> I've tested this series on i386 native and remote, as well as
> on ARM remotely; no change to the previous version.
> 
> Joel, would you mind re-running the tests on a procfs target
> since this patch does change the procfs.c file, which I cannot
> test ...   Thanks!

Looks good to me.  I have no further comments now.  Thanks again.

-- 
Pedro Alves

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [rfc v3][0/6] Remote /proc file access
  2012-01-17 20:19 ` Pedro Alves
@ 2012-01-17 20:33   ` Ulrich Weigand
  0 siblings, 0 replies; 11+ messages in thread
From: Ulrich Weigand @ 2012-01-17 20:33 UTC (permalink / raw)
  To: Pedro Alves; +Cc: gdb-patches, brobecker

Pedro Alves wrote:
> On 01/17/2012 07:40 PM, Ulrich Weigand wrote:
> > Hello,
> > 
> > this implements the suggestions I received as feedback from
> > the v2 version of the patch series.
> > 
> > I've tested this series on i386 native and remote, as well as
> > on ARM remotely; no change to the previous version.
> > 
> > Joel, would you mind re-running the tests on a procfs target
> > since this patch does change the procfs.c file, which I cannot
> > test ...   Thanks!
> 
> Looks good to me.  I have no further comments now.  Thanks again.

Thanks again for your review and comments!

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [rfc v3][0/6] Remote /proc file access
  2012-01-17 19:41 [rfc v3][0/6] Remote /proc file access Ulrich Weigand
  2012-01-17 20:19 ` Pedro Alves
@ 2012-01-18 11:46 ` Joel Brobecker
  2012-01-18 12:09   ` Pedro Alves
  1 sibling, 1 reply; 11+ messages in thread
From: Joel Brobecker @ 2012-01-18 11:46 UTC (permalink / raw)
  To: Ulrich Weigand; +Cc: gdb-patches, palves

> Joel, would you mind re-running the tests on a procfs target
> since this patch does change the procfs.c file, which I cannot
> test ...   Thanks!

I ran the testsuite on mips-irix, and got one real semi-regression:

    info proc^M
    Not supported on this target.^M
    (gdb) FAIL: gdb.base/info-proc.exp: info proc without a process

I think it's just a matter of the output having changed. I couldn't
verify it completely, because I had lost the gdb.log file from the
reference run (they are now split, and I only saved the top one).
If it wasn't intended, I'd still consider this an improvement since
the expected output was:

    No current process: <something like please select one>

I never feel completely confident about runs on mips-irix, because
GDB does not work at all with programs that use threading. AdaCore
has some local changes regarding this feature, but they are very
hacky and would probably not pass a normal review.

I cannot test using the standard testsuite on sparc-solaris. But
I can run our testsuite. So I applied your changes to our own tree,
and ran the testsuite. Found no regression. I think that's an extra
vote of confidence.

-- 
Joel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [rfc v3][0/6] Remote /proc file access
  2012-01-18 11:46 ` Joel Brobecker
@ 2012-01-18 12:09   ` Pedro Alves
  2012-01-18 15:33     ` Ulrich Weigand
  0 siblings, 1 reply; 11+ messages in thread
From: Pedro Alves @ 2012-01-18 12:09 UTC (permalink / raw)
  To: Joel Brobecker; +Cc: Ulrich Weigand, gdb-patches

On 01/18/2012 11:38 AM, Joel Brobecker wrote:
> I ran the testsuite on mips-irix, and got one real semi-regression:
> 
>     info proc^M
>     Not supported on this target.^M
>     (gdb) FAIL: gdb.base/info-proc.exp: info proc without a process
> 
> I think it's just a matter of the output having changed. 

This looks like caused by the new target method not falling back to the
default run target when no target is pushed yet.  "info proc PID" must have
stopped working too.  I guess we should really make it fallback, while we
still have the method.

> I couldn't verify it completely, because I had lost the gdb.log file from the
> reference run (they are now split, and I only saved the top one).
> If it wasn't intended, I'd still consider this an improvement since
> the expected output was:

-- 
Pedro Alves

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [rfc v3][0/6] Remote /proc file access
  2012-01-18 12:09   ` Pedro Alves
@ 2012-01-18 15:33     ` Ulrich Weigand
  2012-01-19 10:00       ` Joel Brobecker
  0 siblings, 1 reply; 11+ messages in thread
From: Ulrich Weigand @ 2012-01-18 15:33 UTC (permalink / raw)
  To: Pedro Alves; +Cc: Joel Brobecker, gdb-patches

Pedro Alves wrote:
> On 01/18/2012 11:38 AM, Joel Brobecker wrote:
> > I ran the testsuite on mips-irix, and got one real semi-regression:
> > 
> >     info proc^M
> >     Not supported on this target.^M
> >     (gdb) FAIL: gdb.base/info-proc.exp: info proc without a process
> > 
> > I think it's just a matter of the output having changed. 
> 
> This looks like caused by the new target method not falling back to the
> default run target when no target is pushed yet.  "info proc PID" must have
> stopped working too.  I guess we should really make it fallback, while we
> still have the method.

Indeed.  In fact, if I apply only the first 5 patches instead of all 6,
I'm seeing the very same problem on Linux.  This is indeed fixed by having
target_info_proc also default to the native target, as is done in the
following patch.

Joel, could you try one (hopefully) last time, using the patch below instead
of the original 5/6 patch?  Thanks again!

Bye,
Ulrich


ChangeLog:

	* defs.h (enum info_proc_what): Moved here from linux-nat.c
	* infcmd.c: (info_proc_cmd_1): New function.
	(info_proc_cmd): New function, moved here from equivalent routine
	orignally in linux-nat.c.
	(info_proc_cmd_mappings): Likewise.
	(info_proc_cmd_stat): Likewise.
	(info_proc_cmd_status): Likewise.
	(info_proc_cmd_cwd): Likewise.
	(info_proc_cmd_cmdline): Likewise.
	(info_proc_cmd_exe): Likewise.
	(info_proc_cmd_all): Likewise.
	(_initialize_infcmd): Install "info proc" command and subcommands.

	* target.h (struct target_ops): Add to_info_proc.
	(target_info_proc): Add prototype.
	* target.c (target_info_proc): New function.

	* procfs.c (procfs_info_proc): Add prototype.
	(info_proc_cmd): Rename into ...
	(procfs_info_proc): ... this.  Update argument types as appropriate
	for a to_info_proc implementation.  Handle "what" argument.
	(procfs_target): Install procfs_info_proc.
	(_initialize_procfs): No longer install "info proc" command.

	* linux-nat.c: (enum info_proc_what): Remove.
	(linux_nat_info_proc_cmd_1): Rename into ...
	(linux_nat_info_proc): ... this.  Update argument types as appropriate
	for a to_info_proc implementation.
	(linux_nat_info_proc_cmd): Remove.
	(linux_nat_info_proc_cmd_mappings): Likewise.
	(linux_nat_info_proc_cmd_stat): Likewise.
	(linux_nat_info_proc_cmd_status): Likewise.
	(linux_nat_info_proc_cmd_cwd): Likewise.
	(linux_nat_info_proc_cmd_cmdline): Likewise.
	(linux_nat_info_proc_cmd_exe): Likewise.
	(linux_nat_info_proc_cmd_all): Likewise.
	(linux_target_install_ops): Install linux_nat_info_proc.
	(_initialize_linux_nat): No longer install "info proc" command
	and subcommands.

testsuite/ChangeLog:

	* gdb.base/info-proc.exp: Also run on remote targets.  Main
	"info proc" command is now always present; whether target supports
	actual info proc operation is detected when attempting to issue
	the command.


Index: gdb-head/gdb/target.h
===================================================================
--- gdb-head.orig/gdb/target.h	2012-01-17 21:17:12.000000000 +0100
+++ gdb-head/gdb/target.h	2012-01-17 21:21:49.000000000 +0100
@@ -715,6 +715,9 @@ struct target_ops
     char *(*to_fileio_readlink) (const char *filename, int *target_errno);
 
 
+    /* Implement the "info proc" command.  */
+    void (*to_info_proc) (struct target_ops *, char *, enum info_proc_what);
+
     /* Tracepoint-related operations.  */
 
     /* Prepare the target for a tracing run.  */
@@ -942,6 +945,10 @@ extern void target_store_registers (stru
 
 struct address_space *target_thread_address_space (ptid_t);
 
+/* Implement the "info proc" command.  */
+
+void target_info_proc (char *, enum info_proc_what);
+
 /* Returns true if this target can debug multiple processes
    simultaneously.  */
 
Index: gdb-head/gdb/procfs.c
===================================================================
--- gdb-head.orig/gdb/procfs.c	2012-01-17 21:11:50.000000000 +0100
+++ gdb-head/gdb/procfs.c	2012-01-17 21:17:13.000000000 +0100
@@ -151,6 +151,9 @@ static char * procfs_make_note_section (
 
 static int procfs_can_use_hw_breakpoint (int, int, int);
 
+static void procfs_info_proc (struct target_ops *, char *,
+			      enum info_proc_what);
+
 #if defined (PR_MODEL_NATIVE) && (PR_MODEL_NATIVE == PR_MODEL_LP64)
 /* When GDB is built as 64-bit application on Solaris, the auxv data
    is presented in 64-bit format.  We need to provide a custom parser
@@ -211,6 +214,7 @@ procfs_target (void)
   t->to_has_thread_control = tc_schedlock;
   t->to_find_memory_regions = proc_find_memory_regions;
   t->to_make_corefile_notes = procfs_make_note_section;
+  t->to_info_proc = procfs_info_proc;
 
 #if defined(PR_MODEL_NATIVE) && (PR_MODEL_NATIVE == PR_MODEL_LP64)
   t->to_auxv_parse = procfs_auxv_parse;
@@ -5390,7 +5394,8 @@ info_proc_mappings (procinfo *pi, int su
 /* Implement the "info proc" command.  */
 
 static void
-info_proc_cmd (char *args, int from_tty)
+procfs_info_proc (struct target_ops *ops, char *args,
+		  enum info_proc_what what)
 {
   struct cleanup *old_chain;
   procinfo *process  = NULL;
@@ -5401,6 +5406,20 @@ info_proc_cmd (char *args, int from_tty)
   int       tid      = 0;
   int       mappings = 0;
 
+  switch (what)
+    {
+    case IP_MINIMAL:
+      break;
+
+    case IP_MAPPINGS:
+    case IP_ALL:
+      mappings = 1;
+      break;
+
+    default:
+      error (_("Not supported on this target."));
+    }
+
   old_chain = make_cleanup (null_cleanup, 0);
   if (args)
     {
@@ -5419,14 +5438,6 @@ info_proc_cmd (char *args, int from_tty)
 	{
 	  tid = strtoul (argv[0] + 1, NULL, 10);
 	}
-      else if (strncmp (argv[0], "mappings", strlen (argv[0])) == 0)
-	{
-	  mappings = 1;
-	}
-      else
-	{
-	  /* [...] */
-	}
       argv++;
     }
   if (pid == 0)
@@ -5567,10 +5578,6 @@ _initialize_procfs (void)
 {
   observer_attach_inferior_created (procfs_inferior_created);
 
-  add_info ("proc", info_proc_cmd, _("\
-Show /proc process information about any running process.\n\
-Specify process id, or use the program being debugged by default.\n\
-Specify keyword 'mappings' for detailed info on memory mappings."));
   add_com ("proc-trace-entry", no_class, proc_trace_sysentry_cmd,
 	   _("Give a trace of entries into the syscall."));
   add_com ("proc-trace-exit", no_class, proc_trace_sysexit_cmd,
Index: gdb-head/gdb/target.c
===================================================================
--- gdb-head.orig/gdb/target.c	2012-01-17 21:17:12.000000000 +0100
+++ gdb-head/gdb/target.c	2012-01-18 15:21:48.000000000 +0100
@@ -3088,6 +3088,38 @@ target_supports_non_stop (void)
   return 0;
 }
 
+/* Implement the "info proc" command.  */
+
+void
+target_info_proc (char *args, enum info_proc_what what)
+{
+  struct target_ops *t;
+
+  /* If we're already connected to something that can get us OS
+     related data, use it.  Otherwise, try using the native
+     target.  */
+  if (current_target.to_stratum >= process_stratum)
+    t = current_target.beneath;
+  else
+    t = find_default_run_target (NULL);
+
+  for (; t != NULL; t = t->beneath)
+    {
+      if (t->to_info_proc != NULL)
+	{
+	  t->to_info_proc (t, args, what);
+
+	  if (targetdebug)
+	    fprintf_unfiltered (gdb_stdlog,
+				"target_info_proc (\"%s\", %d)\n", args, what);
+
+	  return;
+	}
+    }
+
+  error (_("Not supported on this target."));
+}
+
 static int
 find_default_supports_disable_randomization (void)
 {
Index: gdb-head/gdb/linux-nat.c
===================================================================
--- gdb-head.orig/gdb/linux-nat.c	2012-01-17 21:11:50.000000000 +0100
+++ gdb-head/gdb/linux-nat.c	2012-01-18 15:12:12.000000000 +0100
@@ -4803,35 +4803,9 @@ linux_nat_make_corefile_notes (bfd *obfd
 
 /* Implement the "info proc" command.  */
 
-enum info_proc_what
-  {
-    /* Display the default cmdline, cwd and exe outputs.  */
-    IP_MINIMAL,
-
-    /* Display `info proc mappings'.  */
-    IP_MAPPINGS,
-
-    /* Display `info proc status'.  */
-    IP_STATUS,
-
-    /* Display `info proc stat'.  */
-    IP_STAT,
-
-    /* Display `info proc cmdline'.  */
-    IP_CMDLINE,
-
-    /* Display `info proc exe'.  */
-    IP_EXE,
-
-    /* Display `info proc cwd'.  */
-    IP_CWD,
-
-    /* Display all of the above.  */
-    IP_ALL
-  };
-
 static void
-linux_nat_info_proc_cmd_1 (char *args, enum info_proc_what what, int from_tty)
+linux_nat_info_proc (struct target_ops *ops, char *args,
+		     enum info_proc_what what)
 {
   /* A long is used for pid instead of an int to avoid a loss of precision
      compiler warning from the output of strtoul.  */
@@ -5072,70 +5046,6 @@ linux_nat_info_proc_cmd_1 (char *args, e
     }
 }
 
-/* Implement `info proc' when given without any futher parameters.  */
-
-static void
-linux_nat_info_proc_cmd (char *args, int from_tty)
-{
-  linux_nat_info_proc_cmd_1 (args, IP_MINIMAL, from_tty);
-}
-
-/* Implement `info proc mappings'.  */
-
-static void
-linux_nat_info_proc_cmd_mappings (char *args, int from_tty)
-{
-  linux_nat_info_proc_cmd_1 (args, IP_MAPPINGS, from_tty);
-}
-
-/* Implement `info proc stat'.  */
-
-static void
-linux_nat_info_proc_cmd_stat (char *args, int from_tty)
-{
-  linux_nat_info_proc_cmd_1 (args, IP_STAT, from_tty);
-}
-
-/* Implement `info proc status'.  */
-
-static void
-linux_nat_info_proc_cmd_status (char *args, int from_tty)
-{
-  linux_nat_info_proc_cmd_1 (args, IP_STATUS, from_tty);
-}
-
-/* Implement `info proc cwd'.  */
-
-static void
-linux_nat_info_proc_cmd_cwd (char *args, int from_tty)
-{
-  linux_nat_info_proc_cmd_1 (args, IP_CWD, from_tty);
-}
-
-/* Implement `info proc cmdline'.  */
-
-static void
-linux_nat_info_proc_cmd_cmdline (char *args, int from_tty)
-{
-  linux_nat_info_proc_cmd_1 (args, IP_CMDLINE, from_tty);
-}
-
-/* Implement `info proc exe'.  */
-
-static void
-linux_nat_info_proc_cmd_exe (char *args, int from_tty)
-{
-  linux_nat_info_proc_cmd_1 (args, IP_EXE, from_tty);
-}
-
-/* Implement `info proc all'.  */
-
-static void
-linux_nat_info_proc_cmd_all (char *args, int from_tty)
-{
-  linux_nat_info_proc_cmd_1 (args, IP_ALL, from_tty);
-}
-
 /* Implement the to_xfer_partial interface for memory reads using the /proc
    filesystem.  Because we can use a single read() call for /proc, this
    can be much more efficient than banging away at PTRACE_PEEKTEXT,
@@ -5430,6 +5340,7 @@ linux_target_install_ops (struct target_
   t->to_follow_fork = linux_child_follow_fork;
   t->to_find_memory_regions = linux_nat_find_memory_regions;
   t->to_make_corefile_notes = linux_nat_make_corefile_notes;
+  t->to_info_proc = linux_nat_info_proc;
 
   super_xfer_partial = t->to_xfer_partial;
   t->to_xfer_partial = linux_xfer_partial;
@@ -5940,43 +5851,6 @@ extern initialize_file_ftype _initialize
 void
 _initialize_linux_nat (void)
 {
-  static struct cmd_list_element *info_proc_cmdlist;
-
-  add_prefix_cmd ("proc", class_info, linux_nat_info_proc_cmd,
-		  _("\
-Show /proc process information about any running process.\n\
-Specify any process id, or use the program being debugged by default."),
-		  &info_proc_cmdlist, "info proc ",
-		  1/*allow-unknown*/, &infolist);
-
-  add_cmd ("mappings", class_info, linux_nat_info_proc_cmd_mappings, _("\
-List of mapped memory regions."),
-	   &info_proc_cmdlist);
-
-  add_cmd ("stat", class_info, linux_nat_info_proc_cmd_stat, _("\
-List process info from /proc/PID/stat."),
-	   &info_proc_cmdlist);
-
-  add_cmd ("status", class_info, linux_nat_info_proc_cmd_status, _("\
-List process info from /proc/PID/status."),
-	   &info_proc_cmdlist);
-
-  add_cmd ("cwd", class_info, linux_nat_info_proc_cmd_cwd, _("\
-List current working directory of the process."),
-	   &info_proc_cmdlist);
-
-  add_cmd ("cmdline", class_info, linux_nat_info_proc_cmd_cmdline, _("\
-List command line arguments of the process."),
-	   &info_proc_cmdlist);
-
-  add_cmd ("exe", class_info, linux_nat_info_proc_cmd_exe, _("\
-List absolute filename for executable of the process."),
-	   &info_proc_cmdlist);
-
-  add_cmd ("all", class_info, linux_nat_info_proc_cmd_all, _("\
-List all available /proc info."),
-	   &info_proc_cmdlist);
-
   add_setshow_zinteger_cmd ("lin-lwp", class_maintenance,
 			    &debug_linux_nat, _("\
 Set debugging of GNU/Linux lwp module."), _("\
Index: gdb-head/gdb/infcmd.c
===================================================================
--- gdb-head.orig/gdb/infcmd.c	2012-01-17 21:11:50.000000000 +0100
+++ gdb-head/gdb/infcmd.c	2012-01-18 15:12:12.000000000 +0100
@@ -2805,9 +2805,82 @@ unset_command (char *args, int from_tty)
   help_list (unsetlist, "unset ", -1, gdb_stdout);
 }
 
+/* Implement `info proc' family of commands.  */
+
+static void
+info_proc_cmd_1 (char *args, enum info_proc_what what, int from_tty)
+{
+  target_info_proc (args, what);
+}
+
+/* Implement `info proc' when given without any futher parameters.  */
+
+static void
+info_proc_cmd (char *args, int from_tty)
+{
+  info_proc_cmd_1 (args, IP_MINIMAL, from_tty);
+}
+
+/* Implement `info proc mappings'.  */
+
+static void
+info_proc_cmd_mappings (char *args, int from_tty)
+{
+  info_proc_cmd_1 (args, IP_MAPPINGS, from_tty);
+}
+
+/* Implement `info proc stat'.  */
+
+static void
+info_proc_cmd_stat (char *args, int from_tty)
+{
+  info_proc_cmd_1 (args, IP_STAT, from_tty);
+}
+
+/* Implement `info proc status'.  */
+
+static void
+info_proc_cmd_status (char *args, int from_tty)
+{
+  info_proc_cmd_1 (args, IP_STATUS, from_tty);
+}
+
+/* Implement `info proc cwd'.  */
+
+static void
+info_proc_cmd_cwd (char *args, int from_tty)
+{
+  info_proc_cmd_1 (args, IP_CWD, from_tty);
+}
+
+/* Implement `info proc cmdline'.  */
+
+static void
+info_proc_cmd_cmdline (char *args, int from_tty)
+{
+  info_proc_cmd_1 (args, IP_CMDLINE, from_tty);
+}
+
+/* Implement `info proc exe'.  */
+
+static void
+info_proc_cmd_exe (char *args, int from_tty)
+{
+  info_proc_cmd_1 (args, IP_EXE, from_tty);
+}
+
+/* Implement `info proc all'.  */
+
+static void
+info_proc_cmd_all (char *args, int from_tty)
+{
+  info_proc_cmd_1 (args, IP_ALL, from_tty);
+}
+
 void
 _initialize_infcmd (void)
 {
+  static struct cmd_list_element *info_proc_cmdlist;
   struct cmd_list_element *c = NULL;
 
   /* Add the filename of the terminal connected to inferior I/O.  */
@@ -3034,4 +3107,39 @@ Register name as argument means describe
 
   add_info ("vector", vector_info,
 	    _("Print the status of the vector unit\n"));
+
+  add_prefix_cmd ("proc", class_info, info_proc_cmd,
+		  _("\
+Show /proc process information about any running process.\n\
+Specify any process id, or use the program being debugged by default."),
+		  &info_proc_cmdlist, "info proc ",
+		  1/*allow-unknown*/, &infolist);
+
+  add_cmd ("mappings", class_info, info_proc_cmd_mappings, _("\
+List of mapped memory regions."),
+	   &info_proc_cmdlist);
+
+  add_cmd ("stat", class_info, info_proc_cmd_stat, _("\
+List process info from /proc/PID/stat."),
+	   &info_proc_cmdlist);
+
+  add_cmd ("status", class_info, info_proc_cmd_status, _("\
+List process info from /proc/PID/status."),
+	   &info_proc_cmdlist);
+
+  add_cmd ("cwd", class_info, info_proc_cmd_cwd, _("\
+List current working directory of the process."),
+	   &info_proc_cmdlist);
+
+  add_cmd ("cmdline", class_info, info_proc_cmd_cmdline, _("\
+List command line arguments of the process."),
+	   &info_proc_cmdlist);
+
+  add_cmd ("exe", class_info, info_proc_cmd_exe, _("\
+List absolute filename for executable of the process."),
+	   &info_proc_cmdlist);
+
+  add_cmd ("all", class_info, info_proc_cmd_all, _("\
+List all available /proc info."),
+	   &info_proc_cmdlist);
 }
Index: gdb-head/gdb/defs.h
===================================================================
--- gdb-head.orig/gdb/defs.h	2012-01-17 21:11:50.000000000 +0100
+++ gdb-head/gdb/defs.h	2012-01-17 21:17:13.000000000 +0100
@@ -752,6 +752,35 @@ extern struct command_line *read_command
 
 extern void free_command_lines (struct command_line **);
 
+/* Parameters of the "info proc" command.  */
+
+enum info_proc_what
+  {
+    /* Display the default cmdline, cwd and exe outputs.  */
+    IP_MINIMAL,
+
+    /* Display `info proc mappings'.  */
+    IP_MAPPINGS,
+
+    /* Display `info proc status'.  */
+    IP_STATUS,
+
+    /* Display `info proc stat'.  */
+    IP_STAT,
+
+    /* Display `info proc cmdline'.  */
+    IP_CMDLINE,
+
+    /* Display `info proc exe'.  */
+    IP_EXE,
+
+    /* Display `info proc cwd'.  */
+    IP_CWD,
+
+    /* Display all of the above.  */
+    IP_ALL
+  };
+
 /* String containing the current directory (what getwd would return).  */
 
 extern char *current_directory;
Index: gdb-head/gdb/testsuite/gdb.base/info-proc.exp
===================================================================
--- gdb-head.orig/gdb/testsuite/gdb.base/info-proc.exp	2012-01-17 21:11:50.000000000 +0100
+++ gdb-head/gdb/testsuite/gdb.base/info-proc.exp	2012-01-17 21:17:13.000000000 +0100
@@ -20,11 +20,6 @@ if $tracelevel then {
 	strace $tracelevel
 }
 
-if { [is_remote target] } then {
-  continue
-}
-
-
 set ws "\[ \t\]+"
 
 set testfile "break"
@@ -54,17 +49,7 @@ gdb_start
 gdb_reinitialize_dir $srcdir/$subdir
 gdb_load ${binfile}
 
-# Does this gdb support info proc?
-gdb_test_multiple "help info proc" "help info proc" {
-    -re "Undefined info command: .proc..  Try .help info.*$gdb_prompt $" {
-	# info proc command not supported -- nothing to test here.
-	unsupported "gdb does not support info proc on this target"
-	return -1;
-    }
-    -re "Show /proc process information about .*$gdb_prompt $" {
-	pass "help info proc"
-    }
-}
+gdb_test "help info proc" "Show /proc process information about .*"
 
 gdb_test "info proc" "No current process.*" "info proc without a process"
 
@@ -73,7 +58,17 @@ if { ! [ runto_main ] } then {
     return -1
 }
 
-gdb_test "info proc" "process ${decimal}.*" "info proc with process"
+# Does this gdb support info proc?
+gdb_test_multiple "info proc" "info proc" {
+    -re "Not supported on this target.*$gdb_prompt $" {
+	# info proc command not supported -- nothing to test here.
+	unsupported "gdb does not support info proc on this target"
+	return -1;
+    }
+    -re "process ${decimal}.*$gdb_prompt $" {
+	pass "info proc with process"
+    }
+}
 
 gdb_test "info proc mapping" \
 	".*Mapped address spaces:.*${hex}${ws}${hex}${ws}${hex}${ws}${hex}.*" \

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [rfc v3][0/6] Remote /proc file access
  2012-01-18 15:33     ` Ulrich Weigand
@ 2012-01-19 10:00       ` Joel Brobecker
  2012-01-19 10:01         ` [rfc v4][0/6] Remote /proc file access (Re: [rfc v3][0/6] Remote /proc file access) Ulrich Weigand
  0 siblings, 1 reply; 11+ messages in thread
From: Joel Brobecker @ 2012-01-19 10:00 UTC (permalink / raw)
  To: Ulrich Weigand; +Cc: Pedro Alves, gdb-patches

> Joel, could you try one (hopefully) last time, using the patch below instead
> of the original 5/6 patch?  Thanks again!

Apparently, patch 6 failed to apply on top of patch 5. Or maybe
I didn't apply patch 5 correctly. It's a little too large for me
to figure it out at a glance. Can you resend me the whole series
the same way you sent it the first time. It was extremely convenient,
because all I had to do was save your email in an mbox, and then
use "git am" to apply them. That way, I know I'm applying them
correctly.

-- 
Joel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [rfc v4][0/6] Remote /proc file access (Re: [rfc v3][0/6] Remote /proc file access)
  2012-01-19 10:00       ` Joel Brobecker
@ 2012-01-19 10:01         ` Ulrich Weigand
  2012-01-19 16:03           ` Joel Brobecker
  0 siblings, 1 reply; 11+ messages in thread
From: Ulrich Weigand @ 2012-01-19 10:01 UTC (permalink / raw)
  To: Joel Brobecker; +Cc: Pedro Alves, gdb-patches

Joel Brobecker wrote:
> > Joel, could you try one (hopefully) last time, using the patch below instead
> > of the original 5/6 patch?  Thanks again!
> 
> Apparently, patch 6 failed to apply on top of patch 5. Or maybe
> I didn't apply patch 5 correctly. It's a little too large for me
> to figure it out at a glance. Can you resend me the whole series
> the same way you sent it the first time. It was extremely convenient,
> because all I had to do was save your email in an mbox, and then
> use "git am" to apply them. That way, I know I'm applying them
> correctly.

Oops, sorry for the extra difficulties ...  I'll be re-sending
the whole patch series, rebased on current CVS head.

There should be no other changes except those discussed on the list.


Thanks,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [rfc v4][0/6] Remote /proc file access (Re: [rfc v3][0/6] Remote /proc file access)
  2012-01-19 10:01         ` [rfc v4][0/6] Remote /proc file access (Re: [rfc v3][0/6] Remote /proc file access) Ulrich Weigand
@ 2012-01-19 16:03           ` Joel Brobecker
  2012-01-20 10:01             ` Joel Brobecker
  0 siblings, 1 reply; 11+ messages in thread
From: Joel Brobecker @ 2012-01-19 16:03 UTC (permalink / raw)
  To: Ulrich Weigand; +Cc: Pedro Alves, gdb-patches

Hi Ulrich,

I tested the patch series on mips-irix again, and I am happy to
report that there are no regression.  I haven't had time to
test on sparc-solaris today, and I probably won't, but I will
give it a shot tomorrow if I can (it's more difficult because
I need to use another baseline and your patches do not apply
cleanly).

-- 
Joel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [rfc v4][0/6] Remote /proc file access (Re: [rfc v3][0/6] Remote /proc file access)
  2012-01-19 16:03           ` Joel Brobecker
@ 2012-01-20 10:01             ` Joel Brobecker
  2012-01-20 10:02               ` Ulrich Weigand
  0 siblings, 1 reply; 11+ messages in thread
From: Joel Brobecker @ 2012-01-20 10:01 UTC (permalink / raw)
  To: Ulrich Weigand; +Cc: Pedro Alves, gdb-patches

> I tested the patch series on mips-irix again, and I am happy to
> report that there are no regression.  I haven't had time to
> test on sparc-solaris today, and I probably won't, but I will
> give it a shot tomorrow if I can (it's more difficult because
> I need to use another baseline and your patches do not apply
> cleanly).

And I confirm no regression on sparc-solaris either using AdaCore's
testsuite.  The goal of testing on sparc-solaris was to perform some
thread-specific testing, JIC, even if it's only with our testsuite.

-- 
Joel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [rfc v4][0/6] Remote /proc file access (Re: [rfc v3][0/6] Remote /proc file access)
  2012-01-20 10:01             ` Joel Brobecker
@ 2012-01-20 10:02               ` Ulrich Weigand
  0 siblings, 0 replies; 11+ messages in thread
From: Ulrich Weigand @ 2012-01-20 10:02 UTC (permalink / raw)
  To: Joel Brobecker; +Cc: Pedro Alves, gdb-patches

Joel Brobecker wrote:
> > I tested the patch series on mips-irix again, and I am happy to
> > report that there are no regression.  I haven't had time to
> > test on sparc-solaris today, and I probably won't, but I will
> > give it a shot tomorrow if I can (it's more difficult because
> > I need to use another baseline and your patches do not apply
> > cleanly).
> 
> And I confirm no regression on sparc-solaris either using AdaCore's
> testsuite.  The goal of testing on sparc-solaris was to perform some
> thread-specific testing, JIC, even if it's only with our testsuite.

Thanks again for your support!

I've now checked in the full patch series.

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2012-01-20 10:01 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-01-17 19:41 [rfc v3][0/6] Remote /proc file access Ulrich Weigand
2012-01-17 20:19 ` Pedro Alves
2012-01-17 20:33   ` Ulrich Weigand
2012-01-18 11:46 ` Joel Brobecker
2012-01-18 12:09   ` Pedro Alves
2012-01-18 15:33     ` Ulrich Weigand
2012-01-19 10:00       ` Joel Brobecker
2012-01-19 10:01         ` [rfc v4][0/6] Remote /proc file access (Re: [rfc v3][0/6] Remote /proc file access) Ulrich Weigand
2012-01-19 16:03           ` Joel Brobecker
2012-01-20 10:01             ` Joel Brobecker
2012-01-20 10:02               ` Ulrich Weigand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).