Remove usage of find_inferior in win32-i386-low.c
Straightforward replacement of find_inferior with the overload of for_each_thread that filters on pid. I am able to build-test this patch, but not run it. gdb/gdbserver/ChangeLog: * win32-i386-low.c (update_debug_registers_callback): Rename to ... (update_debug_registers): ... this, return void, remove pid_p arg. (x86_dr_low_set_addr, x86_dr_low_set_control): Use for_each_thread.
This commit is contained in:
parent
9c512d88c3
commit
0b360f1926
|
@ -1,3 +1,10 @@
|
||||||
|
2017-11-19 Simon Marchi <simon.marchi@ericsson.com>
|
||||||
|
|
||||||
|
* win32-i386-low.c (update_debug_registers_callback): Rename
|
||||||
|
to ...
|
||||||
|
(update_debug_registers): ... this, return void, remove pid_p arg.
|
||||||
|
(x86_dr_low_set_addr, x86_dr_low_set_control): Use for_each_thread.
|
||||||
|
|
||||||
2017-11-17 Simon Marchi <simon.marchi@polymtl.ca>
|
2017-11-17 Simon Marchi <simon.marchi@polymtl.ca>
|
||||||
|
|
||||||
* inferiors.h (struct process_info): Add constructor, initialize
|
* inferiors.h (struct process_info): Add constructor, initialize
|
||||||
|
|
|
@ -36,21 +36,14 @@
|
||||||
|
|
||||||
static struct x86_debug_reg_state debug_reg_state;
|
static struct x86_debug_reg_state debug_reg_state;
|
||||||
|
|
||||||
static int
|
static void
|
||||||
update_debug_registers_callback (thread_info *thr, void *pid_p)
|
update_debug_registers (thread_info *thread)
|
||||||
{
|
{
|
||||||
win32_thread_info *th = (win32_thread_info *) thread_target_data (thr);
|
win32_thread_info *th = (win32_thread_info *) thread_target_data (thread);
|
||||||
int pid = *(int *) pid_p;
|
|
||||||
|
|
||||||
/* Only update the threads of this process. */
|
/* The actual update is done later just before resuming the lwp,
|
||||||
if (pid_of (thr) == pid)
|
we just mark that the registers need updating. */
|
||||||
{
|
th->debug_registers_changed = 1;
|
||||||
/* The actual update is done later just before resuming the lwp,
|
|
||||||
we just mark that the registers need updating. */
|
|
||||||
th->debug_registers_changed = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update the inferior's debug register REGNUM from STATE. */
|
/* Update the inferior's debug register REGNUM from STATE. */
|
||||||
|
@ -58,12 +51,10 @@ update_debug_registers_callback (thread_info *thr, void *pid_p)
|
||||||
static void
|
static void
|
||||||
x86_dr_low_set_addr (int regnum, CORE_ADDR addr)
|
x86_dr_low_set_addr (int regnum, CORE_ADDR addr)
|
||||||
{
|
{
|
||||||
/* Only update the threads of this process. */
|
|
||||||
int pid = pid_of (current_thread);
|
|
||||||
|
|
||||||
gdb_assert (DR_FIRSTADDR <= regnum && regnum <= DR_LASTADDR);
|
gdb_assert (DR_FIRSTADDR <= regnum && regnum <= DR_LASTADDR);
|
||||||
|
|
||||||
find_inferior (&all_threads, update_debug_registers_callback, &pid);
|
/* Only update the threads of this process. */
|
||||||
|
for_each_thread (current_thread->id.pid (), update_debug_registers);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update the inferior's DR7 debug control register from STATE. */
|
/* Update the inferior's DR7 debug control register from STATE. */
|
||||||
|
@ -72,9 +63,7 @@ static void
|
||||||
x86_dr_low_set_control (unsigned long control)
|
x86_dr_low_set_control (unsigned long control)
|
||||||
{
|
{
|
||||||
/* Only update the threads of this process. */
|
/* Only update the threads of this process. */
|
||||||
int pid = pid_of (current_thread);
|
for_each_thread (current_thread->id.pid (), update_debug_registers);
|
||||||
|
|
||||||
find_inferior (&all_threads, update_debug_registers_callback, &pid);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return the current value of a DR register of the current thread's
|
/* Return the current value of a DR register of the current thread's
|
||||||
|
|
Loading…
Reference in New Issue