2010-05-14 Michael Snyder <msnyder@vmware.com>
* gcore.c: White space. * gdb.c: White space. * gdbtypes.c: White space. * gnu-nat.c: White space. * gnu-v2-abi.c: White space. * gnu-v3-abi.c: White space.
This commit is contained in:
parent
bb9bcb69cd
commit
d8734c886e
@ -1,5 +1,12 @@
|
||||
2010-05-14 Michael Snyder <msnyder@vmware.com>
|
||||
|
||||
* gcore.c: White space.
|
||||
* gdb.c: White space.
|
||||
* gdbtypes.c: White space.
|
||||
* gnu-nat.c: White space.
|
||||
* gnu-v2-abi.c: White space.
|
||||
* gnu-v3-abi.c: White space.
|
||||
|
||||
* findcmd.c: White space.
|
||||
* findvar.c: White space.
|
||||
* fork-child.c: White space.
|
||||
|
@ -52,6 +52,7 @@ bfd *
|
||||
create_gcore_bfd (char *filename)
|
||||
{
|
||||
bfd *obfd = bfd_openw (filename, default_gcore_target ());
|
||||
|
||||
if (!obfd)
|
||||
error (_("Failed to open '%s' for output."), filename);
|
||||
bfd_set_format (obfd, bfd_core);
|
||||
@ -413,6 +414,7 @@ gcore_create_callback (CORE_ADDR vaddr, unsigned long size,
|
||||
asec);
|
||||
bfd_vma start = obj_section_addr (objsec) & -align;
|
||||
bfd_vma end = (obj_section_endaddr (objsec) + align - 1) & -align;
|
||||
|
||||
/* Match if either the entire memory region lies inside the
|
||||
section (i.e. a mapping covering some pages of a large
|
||||
segment) or the entire section lies inside the memory region
|
||||
|
@ -25,6 +25,7 @@ int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
struct captured_main_args args;
|
||||
|
||||
memset (&args, 0, sizeof args);
|
||||
args.argc = argc;
|
||||
args.argv = argv;
|
||||
|
@ -443,6 +443,7 @@ extern int
|
||||
address_space_name_to_int (struct gdbarch *gdbarch, char *space_identifier)
|
||||
{
|
||||
int type_flags;
|
||||
|
||||
/* Check for known address space delimiters. */
|
||||
if (!strcmp (space_identifier, "code"))
|
||||
return TYPE_INSTANCE_FLAG_CODE_SPACE;
|
||||
@ -852,6 +853,7 @@ lookup_array_range_type (struct type *element_type,
|
||||
struct type *index_type = builtin_type (gdbarch)->builtin_int;
|
||||
struct type *range_type
|
||||
= create_range_type (NULL, index_type, low_bound, high_bound);
|
||||
|
||||
return create_array_type (NULL, element_type, range_type);
|
||||
}
|
||||
|
||||
@ -884,6 +886,7 @@ lookup_string_range_type (struct type *string_char_type,
|
||||
int low_bound, int high_bound)
|
||||
{
|
||||
struct type *result_type;
|
||||
|
||||
result_type = lookup_array_range_type (string_char_type,
|
||||
low_bound, high_bound);
|
||||
TYPE_CODE (result_type) = TYPE_CODE_STRING;
|
||||
@ -903,6 +906,7 @@ create_set_type (struct type *result_type, struct type *domain_type)
|
||||
if (!TYPE_STUB (domain_type))
|
||||
{
|
||||
LONGEST low_bound, high_bound, bit_length;
|
||||
|
||||
if (get_discrete_bounds (domain_type, &low_bound, &high_bound) < 0)
|
||||
low_bound = high_bound = 0;
|
||||
bit_length = high_bound - low_bound + 1;
|
||||
@ -946,6 +950,7 @@ struct type *
|
||||
init_vector_type (struct type *elt_type, int n)
|
||||
{
|
||||
struct type *array_type;
|
||||
|
||||
array_type = lookup_array_range_type (elt_type, 0, n - 1);
|
||||
make_vector_type (array_type);
|
||||
return array_type;
|
||||
@ -1167,6 +1172,7 @@ lookup_template_type (char *name, struct type *type,
|
||||
struct symbol *sym;
|
||||
char *nam = (char *)
|
||||
alloca (strlen (name) + strlen (TYPE_NAME (type)) + 4);
|
||||
|
||||
strcpy (nam, name);
|
||||
strcat (nam, "<");
|
||||
strcat (nam, TYPE_NAME (type));
|
||||
@ -1246,8 +1252,9 @@ lookup_struct_elt_type (struct type *type, char *name, int noerr)
|
||||
}
|
||||
else if (!t_field_name || *t_field_name == '\0')
|
||||
{
|
||||
struct type *subtype = lookup_struct_elt_type (
|
||||
TYPE_FIELD_TYPE (type, i), name, 1);
|
||||
struct type *subtype
|
||||
= lookup_struct_elt_type (TYPE_FIELD_TYPE (type, i), name, 1);
|
||||
|
||||
if (subtype != NULL)
|
||||
return subtype;
|
||||
}
|
||||
@ -1419,6 +1426,7 @@ check_typedef (struct type *type)
|
||||
{
|
||||
char *name = type_name_no_tag (type);
|
||||
struct type *newtype;
|
||||
|
||||
if (name == NULL)
|
||||
{
|
||||
stub_noname_complaint ();
|
||||
@ -1454,6 +1462,7 @@ check_typedef (struct type *type)
|
||||
as appropriate? (this code was written before TYPE_NAME and
|
||||
TYPE_TAG_NAME were separate). */
|
||||
struct symbol *sym;
|
||||
|
||||
if (name == NULL)
|
||||
{
|
||||
stub_noname_complaint ();
|
||||
@ -1497,26 +1506,27 @@ check_typedef (struct type *type)
|
||||
|
||||
if (high_bound < low_bound)
|
||||
len = 0;
|
||||
else {
|
||||
/* For now, we conservatively take the array length to be 0
|
||||
if its length exceeds UINT_MAX. The code below assumes
|
||||
that for x < 0, (ULONGEST) x == -x + ULONGEST_MAX + 1,
|
||||
which is technically not guaranteed by C, but is usually true
|
||||
(because it would be true if x were unsigned with its
|
||||
high-order bit on). It uses the fact that
|
||||
high_bound-low_bound is always representable in
|
||||
ULONGEST and that if high_bound-low_bound+1 overflows,
|
||||
it overflows to 0. We must change these tests if we
|
||||
decide to increase the representation of TYPE_LENGTH
|
||||
from unsigned int to ULONGEST. */
|
||||
ULONGEST ulow = low_bound, uhigh = high_bound;
|
||||
ULONGEST tlen = TYPE_LENGTH (target_type);
|
||||
else
|
||||
{
|
||||
/* For now, we conservatively take the array length to be 0
|
||||
if its length exceeds UINT_MAX. The code below assumes
|
||||
that for x < 0, (ULONGEST) x == -x + ULONGEST_MAX + 1,
|
||||
which is technically not guaranteed by C, but is usually true
|
||||
(because it would be true if x were unsigned with its
|
||||
high-order bit on). It uses the fact that
|
||||
high_bound-low_bound is always representable in
|
||||
ULONGEST and that if high_bound-low_bound+1 overflows,
|
||||
it overflows to 0. We must change these tests if we
|
||||
decide to increase the representation of TYPE_LENGTH
|
||||
from unsigned int to ULONGEST. */
|
||||
ULONGEST ulow = low_bound, uhigh = high_bound;
|
||||
ULONGEST tlen = TYPE_LENGTH (target_type);
|
||||
|
||||
len = tlen * (uhigh - ulow + 1);
|
||||
if (tlen == 0 || (len / tlen - 1 + ulow) != uhigh
|
||||
|| len > UINT_MAX)
|
||||
len = 0;
|
||||
}
|
||||
len = tlen * (uhigh - ulow + 1);
|
||||
if (tlen == 0 || (len / tlen - 1 + ulow) != uhigh
|
||||
|| len > UINT_MAX)
|
||||
len = 0;
|
||||
}
|
||||
TYPE_LENGTH (type) = len;
|
||||
TYPE_TARGET_STUB (type) = 0;
|
||||
}
|
||||
@ -2980,6 +2990,7 @@ static hashval_t
|
||||
type_pair_hash (const void *item)
|
||||
{
|
||||
const struct type_pair *pair = item;
|
||||
|
||||
return htab_hash_pointer (pair->old);
|
||||
}
|
||||
|
||||
@ -2987,6 +2998,7 @@ static int
|
||||
type_pair_eq (const void *item_lhs, const void *item_rhs)
|
||||
{
|
||||
const struct type_pair *lhs = item_lhs, *rhs = item_rhs;
|
||||
|
||||
return lhs->old == rhs->old;
|
||||
}
|
||||
|
||||
@ -3251,6 +3263,7 @@ arch_complex_type (struct gdbarch *gdbarch,
|
||||
char *name, struct type *target_type)
|
||||
{
|
||||
struct type *t;
|
||||
|
||||
t = arch_type (gdbarch, TYPE_CODE_COMPLEX,
|
||||
2 * TYPE_LENGTH (target_type), name);
|
||||
TYPE_TARGET_TYPE (t) = target_type;
|
||||
@ -3300,6 +3313,7 @@ struct type *
|
||||
arch_composite_type (struct gdbarch *gdbarch, char *name, enum type_code code)
|
||||
{
|
||||
struct type *t;
|
||||
|
||||
gdb_assert (code == TYPE_CODE_STRUCT || code == TYPE_CODE_UNION);
|
||||
t = arch_type (gdbarch, code, 0, NULL);
|
||||
TYPE_TAG_NAME (t) = name;
|
||||
@ -3315,6 +3329,7 @@ append_composite_type_field_raw (struct type *t, char *name,
|
||||
struct type *field)
|
||||
{
|
||||
struct field *f;
|
||||
|
||||
TYPE_NFIELDS (t) = TYPE_NFIELDS (t) + 1;
|
||||
TYPE_FIELDS (t) = xrealloc (TYPE_FIELDS (t),
|
||||
sizeof (struct field) * TYPE_NFIELDS (t));
|
||||
@ -3332,6 +3347,7 @@ append_composite_type_field_aligned (struct type *t, char *name,
|
||||
struct type *field, int alignment)
|
||||
{
|
||||
struct field *f = append_composite_type_field_raw (t, name, field);
|
||||
|
||||
if (TYPE_CODE (t) == TYPE_CODE_UNION)
|
||||
{
|
||||
if (TYPE_LENGTH (t) < TYPE_LENGTH (field))
|
||||
@ -3349,6 +3365,7 @@ append_composite_type_field_aligned (struct type *t, char *name,
|
||||
if (alignment)
|
||||
{
|
||||
int left = FIELD_BITPOS (f[0]) % (alignment * TARGET_CHAR_BIT);
|
||||
|
||||
if (left)
|
||||
{
|
||||
FIELD_BITPOS (f[0]) += left;
|
||||
|
@ -373,8 +373,9 @@ proc_get_state (struct proc *proc, int will_modify)
|
||||
{
|
||||
mach_msg_type_number_t state_size = THREAD_STATE_SIZE;
|
||||
error_t err =
|
||||
thread_get_state (proc->port, THREAD_STATE_FLAVOR,
|
||||
(thread_state_t) &proc->state, &state_size);
|
||||
thread_get_state (proc->port, THREAD_STATE_FLAVOR,
|
||||
(thread_state_t) &proc->state, &state_size);
|
||||
|
||||
proc_debug (proc, "getting thread state");
|
||||
proc->state_valid = !err;
|
||||
}
|
||||
@ -749,6 +750,7 @@ inf_set_pid (struct inf *inf, pid_t pid)
|
||||
else
|
||||
{
|
||||
error_t err = proc_pid2task (proc_server, pid, &task_port);
|
||||
|
||||
if (err)
|
||||
error (_("Error getting task for pid %d: %s"), pid, safe_strerror (err));
|
||||
}
|
||||
@ -796,8 +798,8 @@ inf_validate_procinfo (struct inf *inf)
|
||||
mach_msg_type_number_t pi_len = 0;
|
||||
int info_flags = 0;
|
||||
error_t err =
|
||||
proc_getprocinfo (proc_server, inf->pid, &info_flags,
|
||||
(procinfo_t *) &pi, &pi_len, &noise, &noise_len);
|
||||
proc_getprocinfo (proc_server, inf->pid, &info_flags,
|
||||
(procinfo_t *) &pi, &pi_len, &noise, &noise_len);
|
||||
|
||||
if (!err)
|
||||
{
|
||||
@ -883,6 +885,7 @@ inf_set_traced (struct inf *inf, int on)
|
||||
error_t err =
|
||||
INF_RESUME_MSGPORT_RPC (inf, msg_set_init_int (msgport, refport,
|
||||
INIT_TRACEMASK, mask));
|
||||
|
||||
if (err == EIEIO)
|
||||
{
|
||||
if (on)
|
||||
@ -909,10 +912,10 @@ int
|
||||
inf_update_suspends (struct inf *inf)
|
||||
{
|
||||
struct proc *task = inf->task;
|
||||
|
||||
/* We don't have to update INF->threads even though we're iterating over it
|
||||
because we'll change a thread only if it already has an existing proc
|
||||
entry. */
|
||||
|
||||
inf_debug (inf, "updating suspend counts");
|
||||
|
||||
if (task)
|
||||
@ -974,6 +977,7 @@ struct proc *
|
||||
inf_port_to_thread (struct inf *inf, mach_port_t port)
|
||||
{
|
||||
struct proc *thread = inf->threads;
|
||||
|
||||
while (thread)
|
||||
if (thread->port == port)
|
||||
return thread;
|
||||
@ -1000,6 +1004,7 @@ inf_validate_procs (struct inf *inf)
|
||||
if (task)
|
||||
{
|
||||
error_t err = task_threads (task->port, &threads, &num_threads);
|
||||
|
||||
inf_debug (inf, "fetching threads");
|
||||
if (err)
|
||||
/* TASK must be dead. */
|
||||
@ -1117,6 +1122,7 @@ inf_set_threads_resume_sc (struct inf *inf,
|
||||
struct proc *run_thread, int run_others)
|
||||
{
|
||||
struct proc *thread;
|
||||
|
||||
inf_update_procs (inf);
|
||||
for (thread = inf->threads; thread; thread = thread->next)
|
||||
if (thread == run_thread)
|
||||
@ -1325,6 +1331,7 @@ inf_signal (struct inf *inf, enum target_signal sig)
|
||||
extremely large)! */
|
||||
{
|
||||
struct inf_wait *w = &inf->wait;
|
||||
|
||||
if (w->status.kind == TARGET_WAITKIND_STOPPED
|
||||
&& w->status.value.sig == sig
|
||||
&& w->thread && !w->thread->aborted)
|
||||
@ -1335,6 +1342,7 @@ inf_signal (struct inf *inf, enum target_signal sig)
|
||||
i.e., we pretend it's global. */
|
||||
{
|
||||
struct exc_state *e = &w->exc;
|
||||
|
||||
inf_debug (inf, "passing through exception:"
|
||||
" task = %d, thread = %d, exc = %d"
|
||||
", code = %d, subcode = %d",
|
||||
@ -1760,6 +1768,7 @@ do_mach_notify_dead_name (mach_port_t notify, mach_port_t dead_port)
|
||||
else
|
||||
{
|
||||
struct proc *thread = inf_port_to_thread (inf, dead_port);
|
||||
|
||||
if (thread)
|
||||
{
|
||||
proc_debug (thread, "is dead");
|
||||
@ -1929,7 +1938,7 @@ port_msgs_queued (mach_port_t port)
|
||||
{
|
||||
struct mach_port_status status;
|
||||
error_t err =
|
||||
mach_port_get_receive_status (mach_task_self (), port, &status);
|
||||
mach_port_get_receive_status (mach_task_self (), port, &status);
|
||||
|
||||
if (err)
|
||||
return 0;
|
||||
@ -2005,6 +2014,7 @@ gnu_resume (struct target_ops *ops,
|
||||
/* Just allow a single thread to run. */
|
||||
{
|
||||
struct proc *thread = inf_tid_to_thread (inf, ptid_get_tid (ptid));
|
||||
|
||||
if (!thread)
|
||||
error (_("Can't run single thread id %s: no such thread!"),
|
||||
target_pid_to_str (ptid));
|
||||
@ -2033,6 +2043,7 @@ static void
|
||||
gnu_kill_inferior (struct target_ops *ops)
|
||||
{
|
||||
struct proc *task = gnu_current_inf->task;
|
||||
|
||||
if (task)
|
||||
{
|
||||
proc_debug (task, "terminating...");
|
||||
@ -2203,6 +2214,7 @@ gnu_detach (struct target_ops *ops, char *args, int from_tty)
|
||||
if (from_tty)
|
||||
{
|
||||
char *exec_file = get_exec_file (0);
|
||||
|
||||
if (exec_file)
|
||||
printf_unfiltered ("Detaching from program `%s' pid %d\n",
|
||||
exec_file, gnu_current_inf->pid);
|
||||
@ -2560,6 +2572,7 @@ char *
|
||||
proc_string (struct proc *proc)
|
||||
{
|
||||
static char tid_str[80];
|
||||
|
||||
if (proc_is_task (proc))
|
||||
sprintf (tid_str, "process %d", proc->inf->pid);
|
||||
else
|
||||
@ -2580,6 +2593,7 @@ gnu_pid_to_str (struct target_ops *ops, ptid_t ptid)
|
||||
else
|
||||
{
|
||||
static char tid_str[80];
|
||||
|
||||
sprintf (tid_str, "bogus thread id %d", tid);
|
||||
return tid_str;
|
||||
}
|
||||
@ -2663,6 +2677,7 @@ parse_int_arg (char *args, char *cmd_prefix)
|
||||
{
|
||||
char *arg_end;
|
||||
int val = strtoul (args, &arg_end, 10);
|
||||
|
||||
if (*args && *arg_end == '\0')
|
||||
return val;
|
||||
}
|
||||
@ -2708,6 +2723,7 @@ static struct inf *
|
||||
active_inf (void)
|
||||
{
|
||||
struct inf *inf = cur_inf ();
|
||||
|
||||
if (!inf->task)
|
||||
error (_("No current process."));
|
||||
return inf;
|
||||
@ -2732,6 +2748,7 @@ static void
|
||||
show_task_pause_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct inf *inf = cur_inf ();
|
||||
|
||||
check_empty (args, "show task pause");
|
||||
printf_unfiltered ("The inferior task %s suspended while gdb has control.\n",
|
||||
inf->task
|
||||
@ -2758,6 +2775,7 @@ static void
|
||||
set_thread_default_pause_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct inf *inf = cur_inf ();
|
||||
|
||||
inf->default_thread_pause_sc =
|
||||
parse_bool_arg (args, "set thread default pause") ? 0 : 1;
|
||||
}
|
||||
@ -2767,6 +2785,7 @@ show_thread_default_pause_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct inf *inf = cur_inf ();
|
||||
int sc = inf->default_thread_pause_sc;
|
||||
|
||||
check_empty (args, "show thread default pause");
|
||||
printf_unfiltered ("New threads %s suspended while gdb has control%s.\n",
|
||||
sc ? "are" : "aren't",
|
||||
@ -2777,6 +2796,7 @@ static void
|
||||
set_thread_default_run_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct inf *inf = cur_inf ();
|
||||
|
||||
inf->default_thread_run_sc =
|
||||
parse_bool_arg (args, "set thread default run") ? 0 : 1;
|
||||
}
|
||||
@ -2785,6 +2805,7 @@ static void
|
||||
show_thread_default_run_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct inf *inf = cur_inf ();
|
||||
|
||||
check_empty (args, "show thread default run");
|
||||
printf_unfiltered ("New threads %s allowed to run.\n",
|
||||
inf->default_thread_run_sc == 0 ? "are" : "aren't");
|
||||
@ -2846,6 +2867,7 @@ static void
|
||||
set_task_exc_port_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct inf *inf = cur_inf ();
|
||||
|
||||
if (!args)
|
||||
error (_("No argument to \"set task exception-port\" command."));
|
||||
steal_exc_port (inf->task, parse_and_eval_address (args));
|
||||
@ -2861,6 +2883,7 @@ static void
|
||||
show_stopped_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct inf *inf = active_inf ();
|
||||
|
||||
check_empty (args, "show stopped");
|
||||
printf_unfiltered ("The inferior process %s stopped.\n",
|
||||
inf->stopped ? "is" : "isn't");
|
||||
@ -2880,6 +2903,7 @@ set_sig_thread_cmd (char *args, int from_tty)
|
||||
else
|
||||
{
|
||||
int tid = ptid_get_tid (thread_id_to_pid (atoi (args)));
|
||||
|
||||
if (tid < 0)
|
||||
error (_("Thread ID %s not known. Use the \"info threads\" command to\n"
|
||||
"see the IDs of currently known threads."), args);
|
||||
@ -2891,6 +2915,7 @@ static void
|
||||
show_sig_thread_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct inf *inf = active_inf ();
|
||||
|
||||
check_empty (args, "show signal-thread");
|
||||
if (inf->signal_thread)
|
||||
printf_unfiltered ("The signal thread is %s.\n",
|
||||
@ -2916,6 +2941,7 @@ static void
|
||||
show_signals_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct inf *inf = cur_inf ();
|
||||
|
||||
check_empty (args, "show signals");
|
||||
printf_unfiltered ("The inferior process's signals %s intercepted.\n",
|
||||
inf->task
|
||||
@ -2940,6 +2966,7 @@ static void
|
||||
show_exceptions_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct inf *inf = cur_inf ();
|
||||
|
||||
check_empty (args, "show exceptions");
|
||||
printf_unfiltered ("Exceptions in the inferior %s trapped.\n",
|
||||
inf->task
|
||||
@ -3009,8 +3036,9 @@ info_port_rights (char *args, mach_port_type_t only)
|
||||
struct value *val = parse_to_comma_and_eval (&args);
|
||||
long right = value_as_long (val);
|
||||
error_t err =
|
||||
print_port_info (right, 0, inf->task->port, PORTINFO_DETAILS,
|
||||
stdout);
|
||||
print_port_info (right, 0, inf->task->port, PORTINFO_DETAILS,
|
||||
stdout);
|
||||
|
||||
if (err)
|
||||
error (_("%ld: %s."), right, safe_strerror (err));
|
||||
}
|
||||
@ -3019,8 +3047,8 @@ info_port_rights (char *args, mach_port_type_t only)
|
||||
/* Print all of them. */
|
||||
{
|
||||
error_t err =
|
||||
print_task_ports_info (inf->task->port, only, PORTINFO_DETAILS,
|
||||
stdout);
|
||||
print_task_ports_info (inf->task->port, only, PORTINFO_DETAILS,
|
||||
stdout);
|
||||
if (err)
|
||||
error (_("%s."), safe_strerror (err));
|
||||
}
|
||||
@ -3193,6 +3221,7 @@ set_thread_pause_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct proc *thread = cur_thread ();
|
||||
int old_sc = thread->pause_sc;
|
||||
|
||||
thread->pause_sc = parse_bool_arg (args, "set thread pause");
|
||||
if (old_sc == 0 && thread->pause_sc != 0 && thread->inf->pause_sc == 0)
|
||||
/* If the task is currently unsuspended, immediately suspend it,
|
||||
@ -3205,6 +3234,7 @@ show_thread_pause_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct proc *thread = cur_thread ();
|
||||
int sc = thread->pause_sc;
|
||||
|
||||
check_empty (args, "show task pause");
|
||||
printf_unfiltered ("Thread %s %s suspended while gdb has control%s.\n",
|
||||
proc_string (thread),
|
||||
@ -3216,6 +3246,7 @@ static void
|
||||
set_thread_run_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct proc *thread = cur_thread ();
|
||||
|
||||
thread->run_sc = parse_bool_arg (args, "set thread run") ? 0 : 1;
|
||||
}
|
||||
|
||||
@ -3223,6 +3254,7 @@ static void
|
||||
show_thread_run_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct proc *thread = cur_thread ();
|
||||
|
||||
check_empty (args, "show thread run");
|
||||
printf_unfiltered ("Thread %s %s allowed to run.",
|
||||
proc_string (thread),
|
||||
@ -3240,6 +3272,7 @@ static void
|
||||
show_thread_detach_sc_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct proc *thread = cur_thread ();
|
||||
|
||||
check_empty (args, "show thread detach-suspend-count");
|
||||
printf_unfiltered ("Thread %s will be left with a suspend count"
|
||||
" of %d when detaching.\n",
|
||||
@ -3251,6 +3284,7 @@ static void
|
||||
set_thread_exc_port_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct proc *thread = cur_thread ();
|
||||
|
||||
if (!args)
|
||||
error (_("No argument to \"set thread exception-port\" command."));
|
||||
steal_exc_port (thread, parse_and_eval_address (args));
|
||||
@ -3261,6 +3295,7 @@ static void
|
||||
show_thread_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct proc *thread = cur_thread ();
|
||||
|
||||
check_empty (args, "show thread");
|
||||
show_thread_run_cmd (0, from_tty);
|
||||
show_thread_pause_cmd (0, from_tty);
|
||||
@ -3273,6 +3308,7 @@ static void
|
||||
thread_takeover_sc_cmd (char *args, int from_tty)
|
||||
{
|
||||
struct proc *thread = cur_thread ();
|
||||
|
||||
thread_basic_info_data_t _info;
|
||||
thread_basic_info_t info = &_info;
|
||||
mach_msg_type_number_t info_len = THREAD_BASIC_INFO_COUNT;
|
||||
|
@ -113,6 +113,7 @@ gnuv2_virtual_fn_field (struct value **arg1p, struct fn_field * f, int j,
|
||||
if (TYPE_TARGET_TYPE (context) != type1)
|
||||
{
|
||||
struct value *tmp = value_cast (context, value_addr (arg1));
|
||||
|
||||
arg1 = value_ind (tmp);
|
||||
type1 = check_typedef (value_type (arg1));
|
||||
}
|
||||
@ -359,8 +360,8 @@ gnuv2_baseclass_offset (struct type *type, int index,
|
||||
if (vb_match (type, i, basetype))
|
||||
{
|
||||
CORE_ADDR addr
|
||||
= unpack_pointer (TYPE_FIELD_TYPE (type, i),
|
||||
valaddr + (TYPE_FIELD_BITPOS (type, i) / 8));
|
||||
= unpack_pointer (TYPE_FIELD_TYPE (type, i),
|
||||
valaddr + (TYPE_FIELD_BITPOS (type, i) / 8));
|
||||
|
||||
return addr - (LONGEST) address;
|
||||
}
|
||||
@ -369,7 +370,8 @@ gnuv2_baseclass_offset (struct type *type, int index,
|
||||
for (i = index + 1; i < n_baseclasses; i++)
|
||||
{
|
||||
int boffset =
|
||||
baseclass_offset (type, i, valaddr, address);
|
||||
baseclass_offset (type, i, valaddr, address);
|
||||
|
||||
if (boffset)
|
||||
return boffset;
|
||||
}
|
||||
|
@ -586,6 +586,7 @@ gnuv3_print_method_ptr (const gdb_byte *contents,
|
||||
{
|
||||
char *demangled_name = cplus_demangle (physname,
|
||||
DMGL_ANSI | DMGL_PARAMS);
|
||||
|
||||
fprintf_filtered (stream, "&virtual ");
|
||||
if (demangled_name == NULL)
|
||||
fputs_filtered (physname, stream);
|
||||
@ -628,6 +629,7 @@ gnuv3_method_ptr_size (struct type *type)
|
||||
{
|
||||
struct type *domain_type = check_typedef (TYPE_DOMAIN_TYPE (type));
|
||||
struct gdbarch *gdbarch = get_type_arch (domain_type);
|
||||
|
||||
return 2 * TYPE_LENGTH (builtin_type (gdbarch)->builtin_data_ptr);
|
||||
}
|
||||
|
||||
@ -710,6 +712,7 @@ gnuv3_method_ptr_to_value (struct value **this_p, struct value *method_ptr)
|
||||
if (vbit)
|
||||
{
|
||||
LONGEST voffset;
|
||||
|
||||
voffset = ptr_value / TYPE_LENGTH (vtable_ptrdiff_type (gdbarch));
|
||||
return gnuv3_get_virtual_fn (gdbarch, value_ind (*this_p),
|
||||
method_type, voffset);
|
||||
|
Loading…
Reference in New Issue
Block a user