2008-12-18 Doug Evans * linux-nat.c (linux_nat_find_memory_regions): Result of PIDGET is an int, not a long long. (linux_nat_info_proc_cmd): Store pid in long instead of long long. Index: linux-nat.c =================================================================== RCS file: /cvs/src/src/gdb/linux-nat.c,v retrieving revision 1.115 diff -u -p -u -p -r1.115 linux-nat.c --- linux-nat.c 3 Jan 2009 05:57:52 -0000 1.115 +++ linux-nat.c 5 Jan 2009 23:41:22 -0000 @@ -3346,7 +3346,7 @@ linux_nat_find_memory_regions (int (*fun unsigned long, int, int, int, void *), void *obfd) { - long long pid = PIDGET (inferior_ptid); + int pid = PIDGET (inferior_ptid); char mapsfilename[MAXPATHLEN]; FILE *mapsfile; long long addr, endaddr, size, offset, inode; @@ -3356,7 +3356,7 @@ linux_nat_find_memory_regions (int (*fun struct cleanup *cleanup; /* Compose the filename for the /proc memory map, and open it. */ - sprintf (mapsfilename, "/proc/%lld/maps", pid); + sprintf (mapsfilename, "/proc/%d/maps", pid); if ((mapsfile = fopen (mapsfilename, "r")) == NULL) error (_("Could not open %s."), mapsfilename); cleanup = make_cleanup_fclose (mapsfile); @@ -3609,7 +3609,9 @@ 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); + /* A long is used for pid instead of an int to avoid a loss of precision + compiler warning from the output of strtoul. */ + long pid = PIDGET (inferior_ptid); FILE *procfile; char **argv = NULL; char buffer[MAXPATHLEN]; @@ -3673,14 +3675,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); @@ -3693,7 +3695,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); @@ -3702,7 +3704,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); @@ -3711,7 +3713,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; @@ -3773,7 +3775,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); @@ -3786,7 +3788,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;