Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: dje@google.com (Doug Evans)
To: gdb-patches@sourceware.org
Subject: [RFA] linux-nat.c minor cleanup
Date: Fri, 19 Dec 2008 05:35:00 -0000	[thread overview]
Message-ID: <20081219053421.2D802412300@localhost> (raw)

Hi.

linux-nat.c:linux_nat_info_proc_cmd uses a long long to record a pid.
There's not much point in that, so this patch changes it to a long.
[either that or it shouldn't use strtoul to parse it :-)]

The handling of info proc cmd,cwd,exe is odd too.
They're always printed and yet argument parsing looks for them anyway,
and ignores invalid commands instead of flagging an error.
This patch adds a blurb about printing cmd,cwd,exe in the help text.
The manual already touches on this, though it doesn't precisely
say that cmd,cwd,exe are always printed.
I wouldn't mind also submitting a patch to flag unknown commands
as errors, but I'm not sure what's intended as far as the parsing
of cmd,cwd,exe.

Ok to check in?

2008-12-18  Doug Evans  <dje@google.com>

	* linux-nat.c (linux_nat_info_proc_cmd): Store pid in long instead
	of long long.
	(_initialize_linux_nat): For info proc command, document that it
	always prints the command line, cwd, and exe path name.

Index: linux-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/linux-nat.c,v
retrieving revision 1.113
diff -u -p -r1.113 linux-nat.c
--- linux-nat.c	18 Dec 2008 21:35:22 -0000	1.113
+++ linux-nat.c	19 Dec 2008 05:16:19 -0000
@@ -3597,7 +3597,7 @@ linux_nat_make_corefile_notes (bfd *obfd
 static void
 linux_nat_info_proc_cmd (char *args, int from_tty)
 {
-  long long pid = PIDGET (inferior_ptid);
+  long pid = PIDGET (inferior_ptid);
   FILE *procfile;
   char **argv = NULL;
   char buffer[MAXPATHLEN];
@@ -3661,14 +3661,14 @@ linux_nat_info_proc_cmd (char *args, int
   if (pid == 0)
     error (_("No current process: you must name one."));
 
-  sprintf (fname1, "/proc/%lld", pid);
+  sprintf (fname1, "/proc/%ld", pid);
   if (stat (fname1, &dummy) != 0)
     error (_("No /proc directory: '%s'"), fname1);
 
-  printf_filtered (_("process %lld\n"), pid);
+  printf_filtered (_("process %ld\n"), pid);
   if (cmdline_f || all)
     {
-      sprintf (fname1, "/proc/%lld/cmdline", pid);
+      sprintf (fname1, "/proc/%ld/cmdline", pid);
       if ((procfile = fopen (fname1, "r")) != NULL)
 	{
 	  struct cleanup *cleanup = make_cleanup_fclose (procfile);
@@ -3681,7 +3681,7 @@ linux_nat_info_proc_cmd (char *args, int
     }
   if (cwd_f || all)
     {
-      sprintf (fname1, "/proc/%lld/cwd", pid);
+      sprintf (fname1, "/proc/%ld/cwd", pid);
       memset (fname2, 0, sizeof (fname2));
       if (readlink (fname1, fname2, sizeof (fname2)) > 0)
 	printf_filtered ("cwd = '%s'\n", fname2);
@@ -3690,7 +3690,7 @@ linux_nat_info_proc_cmd (char *args, int
     }
   if (exe_f || all)
     {
-      sprintf (fname1, "/proc/%lld/exe", pid);
+      sprintf (fname1, "/proc/%ld/exe", pid);
       memset (fname2, 0, sizeof (fname2));
       if (readlink (fname1, fname2, sizeof (fname2)) > 0)
 	printf_filtered ("exe = '%s'\n", fname2);
@@ -3699,7 +3699,7 @@ linux_nat_info_proc_cmd (char *args, int
     }
   if (mappings_f || all)
     {
-      sprintf (fname1, "/proc/%lld/maps", pid);
+      sprintf (fname1, "/proc/%ld/maps", pid);
       if ((procfile = fopen (fname1, "r")) != NULL)
 	{
 	  long long addr, endaddr, size, offset, inode;
@@ -3761,7 +3761,7 @@ linux_nat_info_proc_cmd (char *args, int
     }
   if (status_f || all)
     {
-      sprintf (fname1, "/proc/%lld/status", pid);
+      sprintf (fname1, "/proc/%ld/status", pid);
       if ((procfile = fopen (fname1, "r")) != NULL)
 	{
 	  struct cleanup *cleanup = make_cleanup_fclose (procfile);
@@ -3774,7 +3774,7 @@ linux_nat_info_proc_cmd (char *args, int
     }
   if (stat_f || all)
     {
-      sprintf (fname1, "/proc/%lld/stat", pid);
+      sprintf (fname1, "/proc/%ld/stat", pid);
       if ((procfile = fopen (fname1, "r")) != NULL)
 	{
 	  int itmp;
@@ -4684,7 +4684,9 @@ _initialize_linux_nat (void)
   add_info ("proc", 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.\n\
-Specify any of the following keywords for detailed info:\n\
+The command line, current working directory, and full path name of the\n\
+executable are printed.\n\
+Specify any of the following keywords for additional detailed info:\n\
   mappings -- list of mapped memory regions.\n\
   stat     -- list a bunch of random process info.\n\
   status   -- list a different bunch of random process info.\n\


             reply	other threads:[~2008-12-19  5:35 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-19  5:35 Doug Evans [this message]
2009-01-05 23:04 ` Doug Evans
2009-01-06  0:00   ` Doug Evans
2009-03-13 17:12     ` Doug Evans
2009-03-14 12:53       ` Pedro Alves

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081219053421.2D802412300@localhost \
    --to=dje@google.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox