diff options
author | Tom Tromey <tromey@redhat.com> | 2013-03-19 09:23:17 -0600 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2013-11-08 09:38:41 -0700 |
commit | 52554a0e324951b5c58e71f2815e841377e9c50c (patch) | |
tree | 05776b10aca3ad2c3e099335c13402077b7c28da /gdb/linux-nat.c | |
parent | 79600f4f1bd97003233076f7b07ba2ced21a0c38 (diff) | |
download | gdb-52554a0e324951b5c58e71f2815e841377e9c50c.zip gdb-52554a0e324951b5c58e71f2815e841377e9c50c.tar.gz gdb-52554a0e324951b5c58e71f2815e841377e9c50c.tar.bz2 |
constify to_detach
This patch constifies the target_ops method to_detach.
This is a small cleanup, but also, I think, a bug-prevention fix,
since gdb already acts as if the "args" argument here was const.
In particular, top.c:quit_force calls kill_or_detach via
iterate_over_inferiors. kill_or_detach calls target_detach, passing
the same argument each time. So, if one of these methods was not
const-correct, then kill_or_detach would change its behavior in a
strange way.
I could not build every target I modified in this patch. I've
inspected them all by hand, though. Many targets do not use the
"args" parameter; a couple pass it to atoi; and a few pass it on to
the to_detach method of the target beneath. The only code that
required a real change was in linux-nat.c, and that only needed the
introduction of a temporary variable for const-correctness.
2013-11-08 Tom Tromey <tromey@redhat.com>
* aix-thread.c (aix_thread_detach): Update.
* corelow.c (core_detach): Update.
* darwin-nat.c (darwin_detach): Update.
* dec-thread.c (dec_thread_detach): Update.
* gnu-nat.c (gnu_detach): Update.
* go32-nat.c (go32_detach): Update.
* inf-ptrace.c (inf_ptrace_detach): Update.
* inf-ttrace.c (inf_ttrace_detach): Update.
* linux-fork.c (linux_fork_detach): Update.
* linux-fork.h (linux_fork_detach): Update.
* linux-nat.c (linux_nat_detach): Update. Introduce "tem"
local for const-correctness.
* linux-thread-db.c (thread_db_detach): Update.
* monitor.c (monitor_detach): Update.
* nto-procfs.c (procfs_detach): Update.
* procfs.c (procfs_detach): Update.
* record.c (record_detach): Update.
* record.h (record_detach): Update.
* remote-m32r-sdi.c (m32r_detach): Update.
* remote-mips.c (mips_detach): Update.
* remote-sim.c (gdbsim_detach): Update.
* remote.c (remote_detach_1, remote_detach)
(extended_remote_detach): Update.
* sol-thread.c (sol_thread_detach): Update.
* target.c (target_detach): Make "args" const.
(init_dummy_target): Update.
* target.h (struct target_ops) <to_detach>: Make argument const.
(target_detach): Likewise.
* windows-nat.c (windows_detach): Update.
Diffstat (limited to 'gdb/linux-nat.c')
-rw-r--r-- | gdb/linux-nat.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 4784a5e..95064f7 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -1557,7 +1557,7 @@ detach_callback (struct lwp_info *lp, void *data) } static void -linux_nat_detach (struct target_ops *ops, char *args, int from_tty) +linux_nat_detach (struct target_ops *ops, const char *args, int from_tty) { int pid; int status; @@ -1587,10 +1587,13 @@ linux_nat_detach (struct target_ops *ops, char *args, int from_tty) && get_pending_status (main_lwp, &status) != -1 && WIFSTOPPED (status)) { + char *tem; + /* Put the signal number in ARGS so that inf_ptrace_detach will pass it along with PTRACE_DETACH. */ - args = alloca (8); - sprintf (args, "%d", (int) WSTOPSIG (status)); + tem = alloca (8); + sprintf (tem, "%d", (int) WSTOPSIG (status)); + args = tem; if (debug_linux_nat) fprintf_unfiltered (gdb_stdlog, "LND: Sending signal %s to %s\n", |