diff options
author | Pedro Alves <palves@redhat.com> | 2020-06-18 21:28:26 +0100 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2020-06-18 23:10:09 +0100 |
commit | ebe84f23d2f3c0cb145cc7b3acfb011a4c7df1c9 (patch) | |
tree | 6c1a6b60d0c6a684340f8af203b6cc07d4f2cdc1 /gdb/nto-procfs.c | |
parent | 191f02e59316d8ff15684d24e1c8f4d07b2dd582 (diff) | |
download | gdb-ebe84f23d2f3c0cb145cc7b3acfb011a4c7df1c9.zip gdb-ebe84f23d2f3c0cb145cc7b3acfb011a4c7df1c9.tar.gz gdb-ebe84f23d2f3c0cb145cc7b3acfb011a4c7df1c9.tar.bz2 |
Don't write to inferior_ptid in nto-procfs.c
A best effort patch, which fixes some bit rot and removes some
inferior_ptid references -- this port clearly hasn't been built in a
long while.
gdb/ChangeLog:
2020-06-18 Pedro Alves <palves@redhat.com>
* nto-procfs.c (nto_procfs_target::update_thread_list): Avoid
inferior_ptid.
(nto_procfs_target::attach): Avoid inferior_ptid. Switch to
thread.
(nto_procfs_target::detach): Avoid referencing
inferior_ptid. Use switch_to_no_thread instead of writing to
inferior_ptid directly.
(nto_procfs_target::mourn_inferior): Use switch_to_no_thread
instead of writing to inferior_ptid directly.
(nto_procfs_target::create_inferior): Avoid inferior_ptid. Switch
to thread.
Diffstat (limited to 'gdb/nto-procfs.c')
-rw-r--r-- | gdb/nto-procfs.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/gdb/nto-procfs.c b/gdb/nto-procfs.c index 58e572c..f649b6c 100644 --- a/gdb/nto-procfs.c +++ b/gdb/nto-procfs.c @@ -393,7 +393,7 @@ nto_procfs_target::update_thread_list () prune_threads (); - pid = inferior_ptid.pid (); + pid = current_inferior ()->pid; status.tid = 1; @@ -712,7 +712,7 @@ nto_procfs_target::attach (const char *args, int from_tty) printf_unfiltered ("Attaching to %s\n", target_pid_to_str (ptid_t (pid)).c_str ()); } - inferior_ptid = do_attach (ptid_t (pid)); + ptid_t ptid = do_attach (ptid_t (pid)); inf = current_inferior (); inferior_appeared (inf, pid); inf->attach_flag = 1; @@ -720,7 +720,9 @@ nto_procfs_target::attach (const char *args, int from_tty) if (!target_is_pushed (ops)) push_target (ops); - procfs_update_thread_list (ops); + update_thread_list (); + + switch_to_thread (find_thread_ptid (this, ptid)); } void @@ -1000,19 +1002,16 @@ nto_procfs_target::xfer_partial (enum target_object object, void nto_procfs_target::detach (inferior *inf, int from_tty) { - int pid; - target_announce_detach (); if (siggnal) - SignalKill (nto_node (), inferior_ptid.pid (), 0, 0, 0, 0); + SignalKill (nto_node (), inf->pid, 0, 0, 0, 0); close (ctl_fd); ctl_fd = -1; - pid = inferior_ptid.pid (); - inferior_ptid = null_ptid; - detach_inferior (pid); + switch_to_no_thread (); + detach_inferior (inf->pid); init_thread_list (); inf_child_maybe_unpush_target (ops); } @@ -1132,7 +1131,7 @@ nto_procfs_target::mourn_inferior () SignalKill (nto_node (), inferior_ptid.pid (), 0, SIGKILL, 0, 0); close (ctl_fd); } - inferior_ptid = null_ptid; + switch_to_no_thread (); init_thread_list (); inf_child_mourn_inferior (ops); } @@ -1303,8 +1302,9 @@ nto_procfs_target::create_inferior (const char *exec_file, if (fds[2] != STDERR_FILENO) close (fds[2]); - inferior_ptid = do_attach (ptid_t (pid)); - procfs_update_thread_list (ops); + ptid_t ptid = do_attach (ptid_t (pid)); + update_thread_list (); + switch_to_thread (find_thread_ptid (this, ptid)); inf = current_inferior (); inferior_appeared (inf, pid); |