+2009-02-27 Pedro Alves <pedro@codesourcery.com>
+
+ * gdb_proc_service.h (struct ps_prochandle): Replace pid_t field
+ with a ptid_t field.
+ * linux-thread-db.c (thread_get_info_callback): Build the ptid
+ using the pid stored in proc_handle.ptid.
+ (thread_from_lwp, thread_db_attach_lwp, enable_thread_event)
+ (check_for_thread_db, thread_db_detach, check_event)
+ (thread_db_mourn_inferior, find_new_threads_callback)
+ (thread_db_find_new_threads_1): Adjust.
+ * proc-service.c (ps_xfer_memory, ps_lgetregs, ps_lsetregs)
+ (ps_lgetfpregs, ps_lsetfpregs, ps_getpid): Adjust.
+
2009-02-27 Phil Muldoon <pmuldoon@redhat.com>
* valprint.c (read_string): Rework clean-up logic. Use
thread_db_err_str (err));
/* Fill the cache. */
- thread_ptid = ptid_build (GET_PID (inferior_ptid), ti.ti_lid, 0);
+ thread_ptid = ptid_build (GET_PID (proc_handle.ptid), ti.ti_lid, 0);
thread_info = find_thread_pid (thread_ptid);
/* In the case of a zombie thread, don't continue. We don't want to
gdb_assert (GET_LWP (ptid) != 0);
/* Access an lwp we know is stopped. */
- proc_handle.pid = GET_LWP (ptid);
+ proc_handle.ptid = ptid;
err = td_ta_map_lwp2thr_p (thread_agent, GET_LWP (ptid), &th);
if (err != TD_OK)
error (_("Cannot find user-level thread for LWP %ld: %s"),
gdb_assert (GET_LWP (ptid) != 0);
/* Access an lwp we know is stopped. */
- proc_handle.pid = GET_LWP (ptid);
+ proc_handle.ptid = ptid;
/* If we have only looked at the first thread before libpthread was
initialized, we may not know its thread ID yet. Make sure we do
td_err_e err;
/* Access an lwp we know is stopped. */
- proc_handle.pid = GET_LWP (inferior_ptid);
+ proc_handle.ptid = inferior_ptid;
/* Get the breakpoint address for thread EVENT. */
err = td_ta_event_addr_p (thread_agent, event, ¬ify);
return;
/* Initialize the structure that identifies the child process. */
- proc_handle.pid = GET_PID (inferior_ptid);
+ proc_handle.ptid = inferior_ptid;
/* Now attempt to open a connection to the thread library. */
err = td_ta_new_p (&proc_handle, &thread_agent);
/* Forget about the child's process ID. We shouldn't need it
anymore. */
- proc_handle.pid = 0;
+ proc_handle.ptid = null_ptid;
/* Detach thread_db target ops. */
unpush_target (&thread_db_ops);
return;
/* Access an lwp we know is stopped. */
- proc_handle.pid = GET_LWP (ptid);
+ proc_handle.ptid = ptid;
/* If we have only looked at the first thread before libpthread was
initialized, we may not know its thread ID yet. Make sure we do
/* Forget about the child's process ID. We shouldn't need it
anymore. */
- proc_handle.pid = 0;
+ proc_handle.ptid = null_ptid;
target_beneath->to_mourn_inferior (target_beneath);
if (ti.ti_state == TD_THR_UNKNOWN || ti.ti_state == TD_THR_ZOMBIE)
return 0; /* A zombie -- ignore. */
- ptid = ptid_build (GET_PID (inferior_ptid), ti.ti_lid, 0);
+ ptid = ptid_build (GET_PID (proc_handle.ptid), ti.ti_lid, 0);
if (ti.ti_tid == 0)
{
return;
/* Access an lwp we know is stopped. */
- proc_handle.pid = GET_LWP (ptid);
+ proc_handle.ptid = ptid;
/* Iterate over all user-space threads to discover new threads. */
err = td_ta_thr_iter_p (thread_agent, find_new_threads_callback, NULL,
TD_THR_ANY_STATE, TD_THR_LOWEST_PRIORITY,
int ret;
CORE_ADDR core_addr = ps_addr_to_core_addr (addr);
- inferior_ptid = pid_to_ptid (ph->pid);
+ inferior_ptid = ph->ptid;
if (write)
ret = target_write_memory (core_addr, buf, len);
struct cleanup *old_chain = save_inferior_ptid ();
struct regcache *regcache;
- inferior_ptid = BUILD_LWP (lwpid, ph->pid);
+ inferior_ptid = BUILD_LWP (lwpid, ptid_get_pid (ph->ptid));
regcache = get_thread_regcache (inferior_ptid);
target_fetch_registers (regcache, -1);
struct cleanup *old_chain = save_inferior_ptid ();
struct regcache *regcache;
- inferior_ptid = BUILD_LWP (lwpid, ph->pid);
+ inferior_ptid = BUILD_LWP (lwpid, ptid_get_pid (ph->ptid));
regcache = get_thread_regcache (inferior_ptid);
supply_gregset (regcache, (const gdb_gregset_t *) gregset);
struct cleanup *old_chain = save_inferior_ptid ();
struct regcache *regcache;
- inferior_ptid = BUILD_LWP (lwpid, ph->pid);
+ inferior_ptid = BUILD_LWP (lwpid, ptid_get_pid (ph->ptid));
regcache = get_thread_regcache (inferior_ptid);
target_fetch_registers (regcache, -1);
struct cleanup *old_chain = save_inferior_ptid ();
struct regcache *regcache;
- inferior_ptid = BUILD_LWP (lwpid, ph->pid);
+ inferior_ptid = BUILD_LWP (lwpid, ptid_get_pid (ph->ptid));
regcache = get_thread_regcache (inferior_ptid);
supply_fpregset (regcache, (const gdb_fpregset_t *) fpregset);
pid_t
ps_getpid (gdb_ps_prochandle_t ph)
{
- return ph->pid;
+ return ptid_get_pid (ph->ptid);
}
/* Provide a prototype to silence -Wmissing-prototypes. */