From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7612 invoked by alias); 19 Dec 2008 05:35:01 -0000 Received: (qmail 7603 invoked by uid 22791); 19 Dec 2008 05:35:00 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_33,SPF_PASS X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 19 Dec 2008 05:34:25 +0000 Received: from wpaz29.hot.corp.google.com (wpaz29.hot.corp.google.com [172.24.198.93]) by smtp-out.google.com with ESMTP id mBJ5YNjU017747 for ; Thu, 18 Dec 2008 21:34:23 -0800 Received: from localhost (ruffy.corp.google.com [172.18.118.116]) by wpaz29.hot.corp.google.com with ESMTP id mBJ5YLnF001350 for ; Thu, 18 Dec 2008 21:34:22 -0800 Received: by localhost (Postfix, from userid 67641) id 2D802412300; Thu, 18 Dec 2008 21:34:21 -0800 (PST) To: gdb-patches@sourceware.org Subject: [RFA] linux-nat.c minor cleanup Message-Id: <20081219053421.2D802412300@localhost> Date: Fri, 19 Dec 2008 05:35:00 -0000 From: dje@google.com (Doug Evans) X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-12/txt/msg00336.txt.bz2 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 * 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\