diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2010-02-15 17:35:50 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2010-02-15 17:35:50 +0000 |
commit | 74164c5624c276e97cf9cb01876ef908745cd185 (patch) | |
tree | 8c1a196ff9b052b0f8adda3aa6b0d4b045d0aada /gdb/utils.c | |
parent | 01a8201190286f181bea5731495123ea465c6251 (diff) | |
download | gdb-74164c5624c276e97cf9cb01876ef908745cd185.zip gdb-74164c5624c276e97cf9cb01876ef908745cd185.tar.gz gdb-74164c5624c276e97cf9cb01876ef908745cd185.tar.bz2 |
gdb/
* defs.h (parse_pid_to_attach): New.
* utils.c (parse_pid_to_attach): New.
* darwin-nat.c (darwin_attach): Replace ARGS parsing by parse_pid.
* gnu-nat.c (gnu_attach): Likewise.
* nto-procfs.c (procfs_attach): Likewise.
* procfs.c (procfs_attach): Likewise.
* windows-nat.c (windows_attach): Likewise.
* inf-ptrace.c (inf_ptrace_attach): Likewise. Remove variable dummy.
* inf-ttrace.c (inf_ttrace_attach): Likewise.
* remote.c (extended_remote_attach_1): Likewise. New comment on getpid
check.
gdb/testsuite/
* gdb.base/attach.exp (attach to nonsense is prohibited): Make the
"Illegal process-id" expect string more exact.
(attach to digits-starting nonsense is prohibited): New.
Diffstat (limited to 'gdb/utils.c')
-rw-r--r-- | gdb/utils.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gdb/utils.c b/gdb/utils.c index 33c195a..52596ca 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -3648,6 +3648,26 @@ gdb_bfd_errmsg (bfd_error_type error_tag, char **matching) return ret; } +/* Return ARGS parsed as a valid pid, or throw an error. */ + +int +parse_pid_to_attach (char *args) +{ + unsigned long pid; + char *dummy; + + if (!args) + error_no_arg (_("process-id to attach")); + + dummy = args; + pid = strtoul (args, &dummy, 0); + /* Some targets don't set errno on errors, grrr! */ + if ((pid == 0 && dummy == args) || dummy != &args[strlen (args)]) + error (_("Illegal process-id: %s."), args); + + return pid; +} + /* Provide a prototype to silence -Wmissing-prototypes. */ extern initialize_file_ftype _initialize_utils; |