mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-01-23 18:06:02 +00:00
* 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.
This commit is contained in:
parent
d6f574e0ed
commit
93a91755bf
@ -1,3 +1,16 @@
|
||||
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
|
||||
|
@ -75,8 +75,8 @@ typedef prfpregset_t gdb_prfpregset_t;
|
||||
/* Structure that identifies the target process. */
|
||||
struct ps_prochandle
|
||||
{
|
||||
/* The process id is all we need. */
|
||||
pid_t pid;
|
||||
/* The LWP we use for memory reads. */
|
||||
ptid_t ptid;
|
||||
};
|
||||
|
||||
#endif /* gdb_proc_service.h */
|
||||
|
@ -265,7 +265,7 @@ thread_get_info_callback (const td_thrhandle_t *thp, void *infop)
|
||||
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
|
||||
@ -309,7 +309,7 @@ thread_from_lwp (ptid_t ptid)
|
||||
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"),
|
||||
@ -352,7 +352,7 @@ thread_db_attach_lwp (ptid_t ptid)
|
||||
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
|
||||
@ -457,7 +457,7 @@ enable_thread_event (td_thragent_t *thread_agent, int event, CORE_ADDR *bp)
|
||||
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);
|
||||
@ -637,7 +637,7 @@ check_for_thread_db (void)
|
||||
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);
|
||||
@ -779,7 +779,7 @@ thread_db_detach (struct target_ops *ops, char *args, int from_tty)
|
||||
|
||||
/* 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);
|
||||
@ -810,7 +810,7 @@ check_event (ptid_t ptid)
|
||||
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
|
||||
@ -934,7 +934,7 @@ thread_db_mourn_inferior (struct target_ops *ops)
|
||||
|
||||
/* 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);
|
||||
|
||||
@ -963,7 +963,7 @@ find_new_threads_callback (const td_thrhandle_t *th_p, void *data)
|
||||
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)
|
||||
{
|
||||
@ -1008,7 +1008,7 @@ thread_db_find_new_threads_1 (void)
|
||||
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,
|
||||
|
@ -97,7 +97,7 @@ ps_xfer_memory (const struct ps_prochandle *ph, psaddr_t addr,
|
||||
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);
|
||||
@ -257,7 +257,7 @@ ps_lgetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, prgregset_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);
|
||||
@ -276,7 +276,7 @@ ps_lsetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, const prgregset_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);
|
||||
|
||||
supply_gregset (regcache, (const gdb_gregset_t *) gregset);
|
||||
@ -296,7 +296,7 @@ ps_lgetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
|
||||
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);
|
||||
@ -316,7 +316,7 @@ ps_lsetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
|
||||
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);
|
||||
@ -332,7 +332,7 @@ ps_lsetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
|
||||
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. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user