mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 17:18:55 +00:00
gdb, gdbserver, gdbsupport: trim trailing whitespaces
I noticed my IDE (VSCode) starting to automatically trim trailing
whitespaces on save, despite the setting for it being disabled. I
realized that this is because the .editorconfig file now has
trim_trailing_whitespace = true
for many file types. If we have this EditorConfig setting forcing
editors to trim trailing whitespaces, I think it would make sense to
clean up trailing whitespaces from our files. Otherwise, people will
always get spurious whitespace changes when editing these files.
I did a mass cleanup using this command:
$ find gdb gdbserver gdbsupport -type f \( \
-name "*.c" -o \
-name "*.h" -o \
-name "*.cc" -o \
-name "*.texi" -o \
-name "*.exp" -o \
-name "*.tcl" -o \
-name "*.py" -o \
-name "*.s" -o \
-name "*.S" -o \
-name "*.asm" -o \
-name "*.awk" -o \
-name "*.ac" -o \
-name "Makefile*" -o \
-name "*.sh" -o \
-name "*.adb" -o \
-name "*.ads" -o \
-name "*.d" -o \
-name "*.go" -o \
-name "*.F90" -o \
-name "*.f90" \
\) -exec sed -ri 's/[ \t]+$//' {} +
I then did an autotools regen, because we don't actually want to change
the Makefile and Makefile.in files that are generated.
Change-Id: I6f91b83e3b8c4dc7d5d51a2ebf60706120efe691
This commit is contained in:
committed by
Simon Marchi
parent
de49e8229b
commit
a5cbe67512
@@ -1,5 +1,5 @@
|
||||
/* Ravenscar Aarch64 target support.
|
||||
|
||||
|
||||
Copyright (C) 2017-2025 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
@@ -448,7 +448,7 @@ static const char *
|
||||
ada_unqualified_name (const char *decoded_name)
|
||||
{
|
||||
const char *result;
|
||||
|
||||
|
||||
/* If the decoded name starts with '<', it means that the encoded
|
||||
name does not follow standard naming conventions, and thus that
|
||||
it is not your typical Ada symbol name. Trying to unqualify it
|
||||
@@ -1445,7 +1445,7 @@ ada_decode (const char *encoded, bool wrap, bool translate)
|
||||
&& c_isdigit (encoded [i+4]))
|
||||
{
|
||||
int k = i + 5;
|
||||
|
||||
|
||||
while (k < len0 && c_isdigit (encoded[k]))
|
||||
k++; /* Skip any extra digit. */
|
||||
|
||||
@@ -1641,7 +1641,7 @@ ada_decode_tests ()
|
||||
/* Table for keeping permanent unique copies of decoded names. Once
|
||||
allocated, names in this table are never released. While this is a
|
||||
storage leak, it should not be significant unless there are massive
|
||||
changes in the set of decoded names in successive versions of a
|
||||
changes in the set of decoded names in successive versions of a
|
||||
symbol table loaded during a single session. */
|
||||
static gdb::string_set decoded_names_store;
|
||||
|
||||
@@ -2104,7 +2104,7 @@ desc_arity (struct type *type)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Non-zero iff TYPE is a simple array type (not a pointer to one) or
|
||||
/* Non-zero iff TYPE is a simple array type (not a pointer to one) or
|
||||
an array descriptor type (representing an unconstrained array
|
||||
type). */
|
||||
|
||||
@@ -2826,7 +2826,7 @@ ada_unpack_from_contents (const gdb_byte *src, int bit_offset, int bit_size,
|
||||
proceeding for BIT_SIZE bits. If OBJ is an lval in memory, then
|
||||
assigning through the result will set the field fetched from.
|
||||
VALADDR is ignored unless OBJ is NULL, in which case,
|
||||
VALADDR+OFFSET must address the start of storage containing the
|
||||
VALADDR+OFFSET must address the start of storage containing the
|
||||
packed value. The value returned in this case is never an lval.
|
||||
Assumes 0 <= BIT_OFFSET < HOST_CHAR_BIT. */
|
||||
|
||||
@@ -4351,19 +4351,19 @@ possible_user_operator_p (enum exp_opcode op, struct value *args[])
|
||||
|
||||
/* Renaming */
|
||||
|
||||
/* NOTES:
|
||||
/* NOTES:
|
||||
|
||||
1. In the following, we assume that a renaming type's name may
|
||||
have an ___XD suffix. It would be nice if this went away at some
|
||||
point.
|
||||
2. We handle both the (old) purely type-based representation of
|
||||
2. We handle both the (old) purely type-based representation of
|
||||
renamings and the (new) variable-based encoding. At some point,
|
||||
it is devoutly to be hoped that the former goes away
|
||||
it is devoutly to be hoped that the former goes away
|
||||
(FIXME: hilfinger-2007-07-09).
|
||||
3. Subprogram renamings are not implemented, although the XRS
|
||||
suffix is recognized (FIXME: hilfinger-2007-07-09). */
|
||||
|
||||
/* If SYM encodes a renaming,
|
||||
/* If SYM encodes a renaming,
|
||||
|
||||
<renaming> renames <renamed entity>,
|
||||
|
||||
@@ -4384,7 +4384,7 @@ possible_user_operator_p (enum exp_opcode op, struct value *args[])
|
||||
|
||||
enum ada_renaming_category
|
||||
ada_parse_renaming (struct symbol *sym,
|
||||
const char **renamed_entity, int *len,
|
||||
const char **renamed_entity, int *len,
|
||||
const char **renaming_expr)
|
||||
{
|
||||
enum ada_renaming_category kind;
|
||||
@@ -4851,7 +4851,7 @@ standard_lookup (const char *name, const struct block *block,
|
||||
|
||||
|
||||
/* Non-zero iff there is at least one non-function/non-enumeral symbol
|
||||
in the symbol fields of SYMS. We treat enumerals as functions,
|
||||
in the symbol fields of SYMS. We treat enumerals as functions,
|
||||
since they contend in overloading in the same way. */
|
||||
static int
|
||||
is_nonfunction (const std::vector<struct block_symbol> &syms)
|
||||
@@ -5167,7 +5167,7 @@ remove_extra_symbols (std::vector<struct block_symbol> &syms)
|
||||
remove_p = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Two functions with the same block are identical. */
|
||||
|
||||
else if (syms[i].symbol->loc_class () == LOC_BLOCK)
|
||||
@@ -5298,14 +5298,14 @@ old_renaming_is_invisible (const struct symbol *sym, const char *function_name)
|
||||
remove from the SYMS list renaming symbols that should be visible
|
||||
from CURRENT_BLOCK. However, there does not seem be a 100% reliable
|
||||
method with the current information available. The implementation
|
||||
below has a couple of limitations (FIXME: brobecker-2003-05-12):
|
||||
|
||||
below has a couple of limitations (FIXME: brobecker-2003-05-12):
|
||||
|
||||
- When the user tries to print a rename in a function while there
|
||||
is another rename entity defined in a package: Normally, the
|
||||
rename in the function has precedence over the rename in the
|
||||
package, so the latter should be removed from the list. This is
|
||||
currently not the case.
|
||||
|
||||
|
||||
- This function will incorrectly remove valid renames if
|
||||
the CURRENT_BLOCK corresponds to a function which symbol name
|
||||
has been changed by an "Export" pragma. As a consequence,
|
||||
@@ -5454,7 +5454,7 @@ match_data::operator() (struct block_symbol *bsym)
|
||||
found_sym = false;
|
||||
arg_sym = NULL;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
if (sym->loc_class () == LOC_UNRESOLVED)
|
||||
return true;
|
||||
@@ -5683,7 +5683,7 @@ ada_add_all_symbols (std::vector<struct block_symbol> &result,
|
||||
*made_global_lookup_p = 1;
|
||||
|
||||
/* Search symbols from all global blocks. */
|
||||
|
||||
|
||||
add_nonlocal_symbols (result, lookup_name, domain, 1);
|
||||
|
||||
/* Now add symbols from all per-file blocks if we've gotten no hits
|
||||
@@ -5815,7 +5815,7 @@ is_name_suffix (const char *str)
|
||||
while (c_isdigit (str[0]))
|
||||
str += 1;
|
||||
}
|
||||
|
||||
|
||||
/* [.$][0-9]+ */
|
||||
|
||||
if (str[0] == '.' || str[0] == '$')
|
||||
@@ -6911,19 +6911,19 @@ ada_value_primitive_field (struct value *arg1, int offset, int fieldno,
|
||||
return arg1->primitive_field (offset, fieldno, arg_type);
|
||||
}
|
||||
|
||||
/* Find field with name NAME in object of type TYPE. If found,
|
||||
/* Find field with name NAME in object of type TYPE. If found,
|
||||
set the following for each argument that is non-null:
|
||||
- *FIELD_TYPE_P to the field's type;
|
||||
- *BYTE_OFFSET_P to OFFSET + the byte offset of the field within
|
||||
- *FIELD_TYPE_P to the field's type;
|
||||
- *BYTE_OFFSET_P to OFFSET + the byte offset of the field within
|
||||
an object of that type;
|
||||
- *BIT_OFFSET_P to the bit offset modulo byte size of the field;
|
||||
- *BIT_SIZE_P to its size in bits if the field is packed, and
|
||||
- *BIT_OFFSET_P to the bit offset modulo byte size of the field;
|
||||
- *BIT_SIZE_P to its size in bits if the field is packed, and
|
||||
0 otherwise;
|
||||
If INDEX_P is non-null, increment *INDEX_P by the number of source-visible
|
||||
fields up to but not including the desired field, or by the total
|
||||
number of fields if not found. A NULL value of NAME never
|
||||
matches; the function just counts visible fields in this case.
|
||||
|
||||
|
||||
Notice that we need to handle when a tagged record hierarchy
|
||||
has some components with the same name, like in this scenario:
|
||||
|
||||
@@ -7050,7 +7050,7 @@ find_struct_field (const char *name, struct type *type, int offset,
|
||||
}
|
||||
else if (ada_is_variant_part (type, i))
|
||||
{
|
||||
/* PNH: Wait. Do we ever execute this section, or is ARG always of
|
||||
/* PNH: Wait. Do we ever execute this section, or is ARG always of
|
||||
fixed type?? */
|
||||
int j;
|
||||
struct type *field_type
|
||||
@@ -7264,7 +7264,7 @@ type_as_string (struct type *type)
|
||||
Matches any field whose name has NAME as a prefix, possibly
|
||||
followed by "___".
|
||||
|
||||
TYPE can be either a struct or union. If REFOK, TYPE may also
|
||||
TYPE can be either a struct or union. If REFOK, TYPE may also
|
||||
be a (pointer or reference)+ to a struct or union, and the
|
||||
ultimate target type will be searched.
|
||||
|
||||
@@ -8428,13 +8428,13 @@ to_fixed_array_type (struct type *type0, struct value *dval,
|
||||
DVAL describes a record containing any discriminants used in TYPE0,
|
||||
and may be NULL if there are none, or if the object of type TYPE at
|
||||
ADDRESS or in VALADDR contains these discriminants.
|
||||
|
||||
|
||||
If CHECK_TAG is not null, in the case of tagged types, this function
|
||||
attempts to locate the object's tag and use it to compute the actual
|
||||
type. However, when ADDRESS is null, we cannot use it to determine the
|
||||
location of the tag, and therefore compute the tagged type's actual type.
|
||||
So we return the tagged type without consulting the tag. */
|
||||
|
||||
|
||||
static struct type *
|
||||
ada_to_fixed_type_1 (struct type *type, const gdb_byte *valaddr,
|
||||
CORE_ADDR address, struct value *dval, int check_tag)
|
||||
@@ -8885,7 +8885,7 @@ ada_is_character_type (struct type *type)
|
||||
and don't check any further. */
|
||||
if (type->code () == TYPE_CODE_CHAR)
|
||||
return true;
|
||||
|
||||
|
||||
/* Otherwise, assume it's a character type iff it is a discrete type
|
||||
with a known character type name. */
|
||||
name = ada_type_name (type);
|
||||
@@ -9815,7 +9815,7 @@ aggregate_assigner::add_interval (LONGEST from, LONGEST to)
|
||||
else if (to < indices[i])
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
indices.resize (indices.size () + 2);
|
||||
for (j = indices.size () - 1; j >= i + 2; j -= 1)
|
||||
indices[j] = indices[j - 2];
|
||||
@@ -10486,7 +10486,7 @@ ada_unop_atr (struct expression *exp, enum noside noside, enum exp_opcode op,
|
||||
default:
|
||||
error (_("unexpected attribute encountered"));
|
||||
case OP_ATR_FIRST:
|
||||
return value_from_longest
|
||||
return value_from_longest
|
||||
(range_type, ada_discrete_type_low_bound (range_type));
|
||||
case OP_ATR_LAST:
|
||||
return value_from_longest
|
||||
@@ -11962,7 +11962,7 @@ ada_find_printable_frame (const frame_info_ptr &initial_fi)
|
||||
/* Assuming that the inferior just triggered an unhandled exception
|
||||
catchpoint, return the address in inferior memory where the name
|
||||
of the exception is stored.
|
||||
|
||||
|
||||
Return zero if the address could not be computed. */
|
||||
|
||||
static CORE_ADDR
|
||||
@@ -11990,7 +11990,7 @@ ada_unhandled_exception_name_addr_from_raise (void)
|
||||
fi = get_current_frame ();
|
||||
for (frame_level = 0; frame_level < 3; frame_level += 1)
|
||||
if (fi != NULL)
|
||||
fi = get_prev_frame (fi);
|
||||
fi = get_prev_frame (fi);
|
||||
|
||||
while (fi != NULL)
|
||||
{
|
||||
@@ -12459,7 +12459,7 @@ ada_catchpoint::print_it (const bpstat *bs) const
|
||||
|
||||
bool
|
||||
ada_catchpoint::print_one (const bp_location **last_loc) const
|
||||
{
|
||||
{
|
||||
struct ui_out *uiout = current_uiout;
|
||||
struct value_print_options opts;
|
||||
|
||||
@@ -12481,13 +12481,13 @@ ada_catchpoint::print_one (const bp_location **last_loc) const
|
||||
}
|
||||
else
|
||||
uiout->field_string ("what", "all Ada exceptions");
|
||||
|
||||
|
||||
break;
|
||||
|
||||
case ada_catch_exception_unhandled:
|
||||
uiout->field_string ("what", "unhandled Ada exceptions");
|
||||
break;
|
||||
|
||||
|
||||
case ada_catch_handlers:
|
||||
if (!m_excep_string.empty ())
|
||||
{
|
||||
@@ -12603,7 +12603,7 @@ is_ada_exception_catchpoint (breakpoint *bp)
|
||||
return dynamic_cast<ada_catchpoint *> (bp) != nullptr;
|
||||
}
|
||||
|
||||
/* Split the arguments specified in a "catch exception" command.
|
||||
/* Split the arguments specified in a "catch exception" command.
|
||||
Set EX to the appropriate catchpoint type.
|
||||
Set EXCEP_STRING to the name of the specific exception if
|
||||
specified by the user.
|
||||
|
||||
@@ -348,7 +348,7 @@ ada_get_task_number (thread_info *thread)
|
||||
|
||||
/* Return the task number of the task running in inferior INF which
|
||||
matches TASK_ID , or zero if the task could not be found. */
|
||||
|
||||
|
||||
static int
|
||||
get_task_number_from_id (CORE_ADDR task_id, struct inferior *inf)
|
||||
{
|
||||
@@ -1324,7 +1324,7 @@ info_task (struct ui_out *uiout, const char *taskno_str, struct inferior *inf)
|
||||
/* If ARG is empty or null, then print a list of all Ada tasks.
|
||||
Otherwise, print detailed information about the task whose ID
|
||||
is ARG.
|
||||
|
||||
|
||||
Does nothing if the program doesn't use Ada tasking. */
|
||||
|
||||
static void
|
||||
@@ -1377,7 +1377,7 @@ task_command_1 (const char *taskno_str, int from_tty, struct inferior *inf)
|
||||
if (!ada_task_is_alive (task_info))
|
||||
error (_("Cannot switch to task %s: Task is no longer running"),
|
||||
task_to_str (taskno, task_info).c_str ());
|
||||
|
||||
|
||||
/* On some platforms, the thread list is not updated until the user
|
||||
performs a thread-related operation (by using the "info threads"
|
||||
command, for instance). So this thread list may not be up to date
|
||||
|
||||
@@ -542,7 +542,7 @@ print_variant_clauses (struct type *var_type, struct type *discr_type,
|
||||
/* Assuming that field FIELD_NUM of TYPE represents variants whose
|
||||
discriminant is contained in OUTER_TYPE, print its components on STREAM.
|
||||
LEVEL is the recursion (indentation) level, in case any of the fields
|
||||
themselves have nested structure, and SHOW is the number of levels of
|
||||
themselves have nested structure, and SHOW is the number of levels of
|
||||
internal structure to show (see ada_print_type). For this purpose,
|
||||
fields nested in a variant part are taken to be at the same level as
|
||||
the fields immediately outside the variant part. */
|
||||
@@ -789,7 +789,7 @@ print_record_field_types (struct type *type, struct type *outer_type,
|
||||
0, type->num_fields () - 1,
|
||||
stream, show, level, flags);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Print record type TYPE on STREAM. LEVEL is the recursion (indentation)
|
||||
level, in case the element type itself has nested structure, and SHOW is
|
||||
@@ -1040,7 +1040,7 @@ ada_print_type (struct type *type0, const char *varstring,
|
||||
gdb_printf (stream, ">");
|
||||
}
|
||||
else if (ada_is_modular_type (type))
|
||||
gdb_printf (stream, "mod %s",
|
||||
gdb_printf (stream, "mod %s",
|
||||
int_string (ada_modulus (type), 10, 0, 0, 1));
|
||||
else
|
||||
{
|
||||
|
||||
@@ -311,7 +311,7 @@ addrmap_fixed::addrmap_fixed (struct obstack *obstack,
|
||||
transitions[0].addr = 0;
|
||||
transitions[0].value = NULL;
|
||||
|
||||
/* Copy all entries from the splay tree to the array, in order
|
||||
/* Copy all entries from the splay tree to the array, in order
|
||||
of increasing address. */
|
||||
mut->foreach ([&] (CORE_ADDR start, const void *obj)
|
||||
{
|
||||
|
||||
@@ -200,7 +200,7 @@ private:
|
||||
transition at address T if T-1 and T map to different objects.
|
||||
|
||||
Any addresses below the first node map to NULL. (Unlike
|
||||
fixed maps, we have no entry at (CORE_ADDR) 0; it doesn't
|
||||
fixed maps, we have no entry at (CORE_ADDR) 0; it doesn't
|
||||
simplify enough.)
|
||||
|
||||
The last region is assumed to end at CORE_ADDR_MAX.
|
||||
|
||||
@@ -147,10 +147,10 @@ static int pdc_symbol_addrs (pthdb_user_t, pthdb_symbol_t *, int);
|
||||
static int pdc_read_data (pthdb_user_t, void *, pthdb_addr_t, size_t);
|
||||
static int pdc_write_data (pthdb_user_t, void *, pthdb_addr_t, size_t);
|
||||
static int pdc_read_regs (pthdb_user_t user, pthdb_tid_t tid,
|
||||
unsigned long long flags,
|
||||
unsigned long long flags,
|
||||
pthdb_context_t *context);
|
||||
static int pdc_write_regs (pthdb_user_t user, pthdb_tid_t tid,
|
||||
unsigned long long flags,
|
||||
unsigned long long flags,
|
||||
pthdb_context_t *context);
|
||||
static int pdc_alloc (pthdb_user_t, size_t, void **);
|
||||
static int pdc_realloc (pthdb_user_t, void *, size_t, void **);
|
||||
@@ -300,7 +300,7 @@ ptrace_check (int req, int id, int ret)
|
||||
if (ret == -1 && errno == EPERM)
|
||||
{
|
||||
if (debug_aix_thread)
|
||||
gdb_printf (gdb_stdlog,
|
||||
gdb_printf (gdb_stdlog,
|
||||
"ptrace (%d, %d) = %d (errno = %d)\n",
|
||||
req, id, ret, errno);
|
||||
return ret == -1 ? 0 : 1;
|
||||
@@ -353,7 +353,7 @@ static int
|
||||
ptrace32 (int req, int id, addr_ptr addr, int data, int *buf)
|
||||
{
|
||||
errno = 0;
|
||||
return ptrace_check (req, id,
|
||||
return ptrace_check (req, id,
|
||||
ptrace (req, id, addr, data, buf));
|
||||
}
|
||||
|
||||
@@ -388,7 +388,7 @@ pdc_symbol_addrs (pthdb_user_t user_current_pid, pthdb_symbol_t *symbols, int co
|
||||
{
|
||||
name = symbols[i].name;
|
||||
if (debug_aix_thread)
|
||||
gdb_printf (gdb_stdlog,
|
||||
gdb_printf (gdb_stdlog,
|
||||
" symbols[%d].name = \"%s\"\n", i, name);
|
||||
|
||||
if (!*name)
|
||||
@@ -417,7 +417,7 @@ pdc_symbol_addrs (pthdb_user_t user_current_pid, pthdb_symbol_t *symbols, int co
|
||||
/* Read registers call back function should be able to read the
|
||||
context information of a debuggee kernel thread from an active
|
||||
process or from a core file. The information should be formatted
|
||||
in context64 form for both 32-bit and 64-bit process.
|
||||
in context64 form for both 32-bit and 64-bit process.
|
||||
If successful return 0, else non-zero is returned. */
|
||||
|
||||
static int
|
||||
@@ -450,7 +450,7 @@ pdc_read_regs (pthdb_user_t user_current_pid,
|
||||
{
|
||||
if (data->arch64)
|
||||
{
|
||||
if (!ptrace64aix (PTT_READ_GPRS, tid,
|
||||
if (!ptrace64aix (PTT_READ_GPRS, tid,
|
||||
(unsigned long) gprs64, 0, NULL))
|
||||
memset (gprs64, 0, sizeof (gprs64));
|
||||
memcpy (context->gpr, gprs64, sizeof(gprs64));
|
||||
@@ -476,7 +476,7 @@ pdc_read_regs (pthdb_user_t user_current_pid,
|
||||
{
|
||||
if (data->arch64)
|
||||
{
|
||||
if (!ptrace64aix (PTT_READ_SPRS, tid,
|
||||
if (!ptrace64aix (PTT_READ_SPRS, tid,
|
||||
(unsigned long) &sprs64, 0, NULL))
|
||||
memset (&sprs64, 0, sizeof (sprs64));
|
||||
memcpy (&context->msr, &sprs64, sizeof(sprs64));
|
||||
@@ -487,7 +487,7 @@ pdc_read_regs (pthdb_user_t user_current_pid,
|
||||
memset (&sprs32, 0, sizeof (sprs32));
|
||||
memcpy (&context->msr, &sprs32, sizeof(sprs32));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* vector registers. */
|
||||
__vmx_context_t vmx;
|
||||
@@ -536,7 +536,7 @@ pdc_write_regs (pthdb_user_t user_current_pid,
|
||||
pthdb_tid_t tid,
|
||||
unsigned long long flags,
|
||||
pthdb_context_t *context)
|
||||
{
|
||||
{
|
||||
/* This function doesn't appear to be used, so we could probably
|
||||
just return 0 here. HOWEVER, if it is not defined, the OS will
|
||||
complain and several thread debug functions will fail. In case
|
||||
@@ -555,7 +555,7 @@ pdc_write_regs (pthdb_user_t user_current_pid,
|
||||
if (flags & PTHDB_FLAG_GPRS)
|
||||
{
|
||||
if (data->arch64)
|
||||
ptrace64aix (PTT_WRITE_GPRS, tid,
|
||||
ptrace64aix (PTT_WRITE_GPRS, tid,
|
||||
(unsigned long) context->gpr, 0, NULL);
|
||||
else
|
||||
ptrace32 (PTT_WRITE_GPRS, tid, (uintptr_t) context->gpr, 0, NULL);
|
||||
@@ -572,7 +572,7 @@ pdc_write_regs (pthdb_user_t user_current_pid,
|
||||
{
|
||||
if (data->arch64)
|
||||
{
|
||||
ptrace64aix (PTT_WRITE_SPRS, tid,
|
||||
ptrace64aix (PTT_WRITE_SPRS, tid,
|
||||
(unsigned long) &context->msr, 0, NULL);
|
||||
}
|
||||
else
|
||||
@@ -670,7 +670,7 @@ pdc_alloc (pthdb_user_t user_current_pid, size_t len, void **bufp)
|
||||
user_current_pid, len, (long) bufp);
|
||||
*bufp = xmalloc (len);
|
||||
if (debug_aix_thread)
|
||||
gdb_printf (gdb_stdlog,
|
||||
gdb_printf (gdb_stdlog,
|
||||
" malloc returned 0x%lx\n", (long) *bufp);
|
||||
|
||||
/* Note: xmalloc() can't return 0; therefore PDC_FAILURE will never
|
||||
@@ -692,7 +692,7 @@ pdc_realloc (pthdb_user_t user_current_pid, void *buf, size_t len, void **bufp)
|
||||
user_current_pid, (long) buf, len, (long) bufp);
|
||||
*bufp = xrealloc (buf, len);
|
||||
if (debug_aix_thread)
|
||||
gdb_printf (gdb_stdlog,
|
||||
gdb_printf (gdb_stdlog,
|
||||
" realloc returned 0x%lx\n", (long) *bufp);
|
||||
return *bufp ? PDC_SUCCESS : PDC_FAILURE;
|
||||
}
|
||||
@@ -704,7 +704,7 @@ static int
|
||||
pdc_dealloc (pthdb_user_t user_current_pid, void *buf)
|
||||
{
|
||||
if (debug_aix_thread)
|
||||
gdb_printf (gdb_stdlog,
|
||||
gdb_printf (gdb_stdlog,
|
||||
"pdc_free (user_current_pid = %ld, buf = 0x%lx)\n", user_current_pid,
|
||||
(long) buf);
|
||||
xfree (buf);
|
||||
@@ -1127,7 +1127,7 @@ aix_thread_target::wait (ptid_t ptid, struct target_waitstatus *status,
|
||||
|
||||
/* Supply AIX altivec registers, both 64 and 32 bit. */
|
||||
|
||||
static void
|
||||
static void
|
||||
supply_altivec_regs (struct regcache *regcache, __vmx_context_t vmx)
|
||||
{
|
||||
ppc_gdbarch_tdep *tdep
|
||||
@@ -1275,7 +1275,7 @@ fetch_regs_user_thread (struct regcache *regcache, pthdb_pthread_t pdtid)
|
||||
data = get_thread_data_helper_for_ptid (inferior_ptid);
|
||||
|
||||
if (debug_aix_thread)
|
||||
gdb_printf (gdb_stdlog,
|
||||
gdb_printf (gdb_stdlog,
|
||||
"fetch_regs_user_thread %lx\n", (long) pdtid);
|
||||
status = pthdb_pthread_context (data->pd_session, pdtid, &ctx);
|
||||
if (status != PTHDB_SUCCESS)
|
||||
@@ -1354,7 +1354,7 @@ fetch_regs_kernel_thread (struct regcache *regcache, int regno,
|
||||
{
|
||||
if (data->arch64)
|
||||
{
|
||||
if (!ptrace64aix (PTT_READ_GPRS, tid,
|
||||
if (!ptrace64aix (PTT_READ_GPRS, tid,
|
||||
(unsigned long) gprs64, 0, NULL))
|
||||
memset (gprs64, 0, sizeof (gprs64));
|
||||
supply_gprs64 (regcache, gprs64);
|
||||
@@ -1418,7 +1418,7 @@ fetch_regs_kernel_thread (struct regcache *regcache, int regno,
|
||||
{
|
||||
if (data->arch64)
|
||||
{
|
||||
if (!ptrace64aix (PTT_READ_SPRS, tid,
|
||||
if (!ptrace64aix (PTT_READ_SPRS, tid,
|
||||
(unsigned long) &sprs64, 0, NULL))
|
||||
memset (&sprs64, 0, sizeof (sprs64));
|
||||
supply_sprs64 (regcache, sprs64.pt_iar, sprs64.pt_msr,
|
||||
@@ -1517,7 +1517,7 @@ fill_gprs64 (const struct regcache *regcache, uint64_t *vals)
|
||||
regcache->raw_collect (tdep->ppc_gp0_regnum + regno, vals + regno);
|
||||
}
|
||||
|
||||
static void
|
||||
static void
|
||||
fill_gprs32 (const struct regcache *regcache, uint32_t *vals)
|
||||
{
|
||||
ppc_gdbarch_tdep *tdep
|
||||
@@ -1641,7 +1641,7 @@ store_regs_user_thread (const struct regcache *regcache, pthdb_pthread_t pdtid)
|
||||
__vsx_context_t vsx;
|
||||
|
||||
if (debug_aix_thread)
|
||||
gdb_printf (gdb_stdlog,
|
||||
gdb_printf (gdb_stdlog,
|
||||
"store_regs_user_thread %lx\n", (long) pdtid);
|
||||
|
||||
/* Retrieve the thread's current context for its non-register
|
||||
@@ -1768,7 +1768,7 @@ store_regs_kernel_thread (const struct regcache *regcache, int regno,
|
||||
data = get_thread_data_helper_for_ptid (regcache->ptid ());
|
||||
|
||||
if (debug_aix_thread)
|
||||
gdb_printf (gdb_stdlog,
|
||||
gdb_printf (gdb_stdlog,
|
||||
"store_regs_kernel_thread tid=%lx regno=%d\n",
|
||||
(long) tid, regno);
|
||||
|
||||
@@ -1813,12 +1813,12 @@ store_regs_kernel_thread (const struct regcache *regcache, int regno,
|
||||
if (data->arch64)
|
||||
{
|
||||
/* Pre-fetch: some registers won't be in the cache. */
|
||||
ptrace64aix (PTT_READ_SPRS, tid,
|
||||
ptrace64aix (PTT_READ_SPRS, tid,
|
||||
(unsigned long) &sprs64, 0, NULL);
|
||||
fill_sprs64 (regcache, &sprs64.pt_iar, &sprs64.pt_msr,
|
||||
&sprs64.pt_cr, &sprs64.pt_lr, &sprs64.pt_ctr,
|
||||
&sprs64.pt_xer, &sprs64.pt_fpscr);
|
||||
ptrace64aix (PTT_WRITE_SPRS, tid,
|
||||
ptrace64aix (PTT_WRITE_SPRS, tid,
|
||||
(unsigned long) &sprs64, 0, NULL);
|
||||
}
|
||||
else
|
||||
@@ -1856,7 +1856,7 @@ store_regs_kernel_thread (const struct regcache *regcache, int regno,
|
||||
ptrace32 (PTT_WRITE_SPRS, tid, (uintptr_t) &sprs32, 0, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Vector registers. */
|
||||
if (tdep->ppc_vr0_regnum != -1 && tdep->ppc_vrsave_regnum != -1
|
||||
&& (regno == -1 || (regno >= tdep->ppc_vr0_regnum
|
||||
|
||||
@@ -285,7 +285,7 @@ alpha_mdebug_frame_prev_register (const frame_info_ptr &this_frame,
|
||||
the correct place. */
|
||||
if (regnum == ALPHA_PC_REGNUM)
|
||||
regnum = PROC_PC_REG (info->proc_desc);
|
||||
|
||||
|
||||
return trad_frame_get_prev_register (this_frame, info->saved_regs, regnum);
|
||||
}
|
||||
|
||||
|
||||
@@ -82,8 +82,8 @@ alphanbsd_aout_supply_gregset (const struct regset *regset,
|
||||
0, 1, 2, 3,
|
||||
4, 5, 6, 7,
|
||||
8, 9, 10, 11,
|
||||
12, 13, 14, 15,
|
||||
30, 31, 32, 16,
|
||||
12, 13, 14, 15,
|
||||
30, 31, 32, 16,
|
||||
17, 18, 19, 20,
|
||||
21, 22, 23, 24,
|
||||
25, 29, 26
|
||||
|
||||
@@ -118,7 +118,7 @@ static int
|
||||
alpha_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
|
||||
const struct reggroup *group)
|
||||
{
|
||||
/* Filter out any registers eliminated, but whose regnum is
|
||||
/* Filter out any registers eliminated, but whose regnum is
|
||||
reserved for backward compatibility, e.g. the vfp. */
|
||||
if (*gdbarch_register_name (gdbarch, regnum) == '\0')
|
||||
return 0;
|
||||
@@ -510,7 +510,7 @@ alpha_extract_return_value (struct type *valtype, struct regcache *regcache,
|
||||
}
|
||||
}
|
||||
|
||||
/* Insert the given value into REGCACHE as if it was being
|
||||
/* Insert the given value into REGCACHE as if it was being
|
||||
returned by a function. */
|
||||
|
||||
static void
|
||||
@@ -736,7 +736,7 @@ static const int stq_c_opcode = 0x2f;
|
||||
|
||||
/* Checks for an atomic sequence of instructions beginning with a LDL_L/LDQ_L
|
||||
instruction and ending with a STL_C/STQ_C instruction. If such a sequence
|
||||
is found, attempt to step through it. A breakpoint is placed at the end of
|
||||
is found, attempt to step through it. A breakpoint is placed at the end of
|
||||
the sequence. */
|
||||
|
||||
static std::vector<CORE_ADDR>
|
||||
@@ -748,7 +748,7 @@ alpha_deal_with_atomic_sequence (struct gdbarch *gdbarch, CORE_ADDR pc)
|
||||
unsigned int insn = alpha_read_insn (gdbarch, loc);
|
||||
int insn_count;
|
||||
int index;
|
||||
int last_breakpoint = 0; /* Defaults to 0 (no breakpoints placed). */
|
||||
int last_breakpoint = 0; /* Defaults to 0 (no breakpoints placed). */
|
||||
const int atomic_sequence_length = 16; /* Instruction sequence length. */
|
||||
int bc_insn_count = 0; /* Conditional branch instruction count. */
|
||||
|
||||
@@ -757,7 +757,7 @@ alpha_deal_with_atomic_sequence (struct gdbarch *gdbarch, CORE_ADDR pc)
|
||||
&& INSN_OPCODE (insn) != ldq_l_opcode)
|
||||
return {};
|
||||
|
||||
/* Assume that no atomic sequence is longer than "atomic_sequence_length"
|
||||
/* Assume that no atomic sequence is longer than "atomic_sequence_length"
|
||||
instructions. */
|
||||
for (insn_count = 0; insn_count < atomic_sequence_length; ++insn_count)
|
||||
{
|
||||
@@ -765,7 +765,7 @@ alpha_deal_with_atomic_sequence (struct gdbarch *gdbarch, CORE_ADDR pc)
|
||||
insn = alpha_read_insn (gdbarch, loc);
|
||||
|
||||
/* Assume that there is at most one branch in the atomic
|
||||
sequence. If a branch is found, put a breakpoint in
|
||||
sequence. If a branch is found, put a breakpoint in
|
||||
its destination address. */
|
||||
if (INSN_OPCODE (insn) >= br_opcode)
|
||||
{
|
||||
@@ -800,7 +800,7 @@ alpha_deal_with_atomic_sequence (struct gdbarch *gdbarch, CORE_ADDR pc)
|
||||
breaks[0] = loc;
|
||||
|
||||
/* Check for duplicated breakpoints. Check also for a breakpoint
|
||||
placed (branch instruction's destination) anywhere in sequence. */
|
||||
placed (branch instruction's destination) anywhere in sequence. */
|
||||
if (last_breakpoint
|
||||
&& (breaks[1] == breaks[0]
|
||||
|| (breaks[1] >= pc && breaks[1] <= closing_insn)))
|
||||
@@ -876,7 +876,7 @@ alpha_sigtramp_frame_unwind_cache (const frame_info_ptr &this_frame,
|
||||
static CORE_ADDR
|
||||
alpha_sigtramp_register_address (struct gdbarch *gdbarch,
|
||||
CORE_ADDR sigcontext_addr, int regnum)
|
||||
{
|
||||
{
|
||||
alpha_gdbarch_tdep *tdep = gdbarch_tdep<alpha_gdbarch_tdep> (gdbarch);
|
||||
|
||||
if (regnum >= 0 && regnum < 32)
|
||||
@@ -884,7 +884,7 @@ alpha_sigtramp_register_address (struct gdbarch *gdbarch,
|
||||
else if (regnum >= ALPHA_FP0_REGNUM && regnum < ALPHA_FP0_REGNUM + 32)
|
||||
return sigcontext_addr + tdep->sc_fpregs_offset + regnum * 8;
|
||||
else if (regnum == ALPHA_PC_REGNUM)
|
||||
return sigcontext_addr + tdep->sc_pc_offset;
|
||||
return sigcontext_addr + tdep->sc_pc_offset;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1093,7 +1093,7 @@ Otherwise, you told GDB there was a function where there isn't one, or\n\
|
||||
something about the traditional layout of alpha stack frames. */
|
||||
|
||||
struct alpha_heuristic_unwind_cache
|
||||
{
|
||||
{
|
||||
CORE_ADDR vfp;
|
||||
CORE_ADDR start_pc;
|
||||
trad_frame_saved_reg *saved_regs;
|
||||
@@ -1123,7 +1123,7 @@ alpha_heuristic_analyze_probing_loop (struct gdbarch *gdbarch, CORE_ADDR *pc,
|
||||
subq REG_INDEX,0x1,REG_INDEX
|
||||
lda REG_PROBE,<immediate>(REG_PROBE)
|
||||
bne REG_INDEX, LOOP_START
|
||||
|
||||
|
||||
lda sp,<immediate>(REG_PROBE)
|
||||
|
||||
If anything different is found, the function returns without
|
||||
@@ -1149,14 +1149,14 @@ alpha_heuristic_analyze_probing_loop (struct gdbarch *gdbarch, CORE_ADDR *pc,
|
||||
cur_frame_size -= MEM_DISP (insn);
|
||||
|
||||
/* stq zero,<immediate>(REG_PROBE) */
|
||||
|
||||
|
||||
cur_pc += ALPHA_INSN_SIZE;
|
||||
insn = alpha_read_insn (gdbarch, cur_pc);
|
||||
if (INSN_OPCODE (insn) != stq_opcode
|
||||
|| MEM_RA (insn) != 0x1f
|
||||
|| MEM_RB (insn) != reg_probe)
|
||||
return;
|
||||
|
||||
|
||||
/* subq REG_INDEX,0x1,REG_INDEX */
|
||||
|
||||
cur_pc += ALPHA_INSN_SIZE;
|
||||
@@ -1168,9 +1168,9 @@ alpha_heuristic_analyze_probing_loop (struct gdbarch *gdbarch, CORE_ADDR *pc,
|
||||
|| OPR_RA (insn) != reg_index
|
||||
|| OPR_RC (insn) != reg_index)
|
||||
return;
|
||||
|
||||
|
||||
/* lda REG_PROBE,<immediate>(REG_PROBE) */
|
||||
|
||||
|
||||
cur_pc += ALPHA_INSN_SIZE;
|
||||
insn = alpha_read_insn (gdbarch, cur_pc);
|
||||
if (INSN_OPCODE (insn) != lda_opcode
|
||||
@@ -1403,7 +1403,7 @@ alpha_heuristic_frame_prev_register (const frame_info_ptr &this_frame,
|
||||
the correct place. */
|
||||
if (regnum == ALPHA_PC_REGNUM)
|
||||
regnum = info->return_reg;
|
||||
|
||||
|
||||
return trad_frame_get_prev_register (this_frame, info->saved_regs, regnum);
|
||||
}
|
||||
|
||||
@@ -1522,7 +1522,7 @@ alpha_fill_fp_regs (const struct regcache *regcache,
|
||||
|
||||
/* Return nonzero if the G_floating register value in REG is equal to
|
||||
zero for FP control instructions. */
|
||||
|
||||
|
||||
static int
|
||||
fp_register_zero_p (LONGEST reg)
|
||||
{
|
||||
@@ -1597,7 +1597,7 @@ alpha_next_pc (struct regcache *regcache, CORE_ADDR pc)
|
||||
case 0x35: /* FBNE */
|
||||
regno += gdbarch_fp0_regnum (gdbarch);
|
||||
}
|
||||
|
||||
|
||||
rav = regcache_raw_get_signed (regcache, regno);
|
||||
|
||||
switch (op)
|
||||
@@ -1636,7 +1636,7 @@ alpha_next_pc (struct regcache *regcache, CORE_ADDR pc)
|
||||
break;
|
||||
|
||||
/* Floating point branches. */
|
||||
|
||||
|
||||
case 0x31: /* FBEQ */
|
||||
if (fp_register_zero_p (rav))
|
||||
goto branch_taken;
|
||||
|
||||
@@ -56,7 +56,7 @@ struct regcache;
|
||||
#define ALPHA_INSN_SIZE 4
|
||||
|
||||
/* The alpha has two different virtual pointers for arguments and locals.
|
||||
|
||||
|
||||
The virtual argument pointer is pointing to the bottom of the argument
|
||||
transfer area, which is located immediately below the virtual frame
|
||||
pointer. Its size is fixed for the native compiler, it is either zero
|
||||
@@ -64,7 +64,7 @@ struct regcache;
|
||||
gcc uses a variable sized argument transfer area. As it has
|
||||
to stay compatible with the native debugging tools it has to use the same
|
||||
virtual argument pointer and adjust the argument offsets accordingly.
|
||||
|
||||
|
||||
The virtual local pointer is localoff bytes below the virtual frame
|
||||
pointer, the value of localoff is obtained from the PDR. */
|
||||
#define ALPHA_NUM_ARG_REGS 6
|
||||
|
||||
@@ -68,7 +68,7 @@ int amd64_darwin_thread_state_reg_offset[] =
|
||||
20 * 8 /* %gs */
|
||||
};
|
||||
|
||||
const int amd64_darwin_thread_state_num_regs =
|
||||
const int amd64_darwin_thread_state_num_regs =
|
||||
ARRAY_SIZE (amd64_darwin_thread_state_reg_offset);
|
||||
|
||||
/* Assuming THIS_FRAME is a Darwin sigtramp routine, return the
|
||||
|
||||
@@ -111,7 +111,7 @@ amd64_linux_collect_native_gregset (const struct regcache *regcache,
|
||||
if (gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 32)
|
||||
{
|
||||
/* Sign extend EAX value to avoid potential syscall restart
|
||||
problems.
|
||||
problems.
|
||||
|
||||
On Linux, when a syscall is interrupted by a signal, the
|
||||
(kernel function implementing the) syscall may return
|
||||
@@ -121,7 +121,7 @@ amd64_linux_collect_native_gregset (const struct regcache *regcache,
|
||||
handler is called, the kernel can then either return -EINTR
|
||||
or it can cause the syscall to be restarted. We are
|
||||
concerned with the latter case here.
|
||||
|
||||
|
||||
On (32-bit) i386, the status (-ERESTARTSYS) is placed in the
|
||||
EAX register. When debugging a 32-bit process from a 64-bit
|
||||
(amd64) GDB, the debugger fetches 64-bit registers even
|
||||
@@ -138,11 +138,11 @@ amd64_linux_collect_native_gregset (const struct regcache *regcache,
|
||||
syscall after a signal expects to see a negative value
|
||||
(specifically -ERESTARTSYS) in the 64-bit RAX register in
|
||||
order to correctly cause a syscall to be restarted.
|
||||
|
||||
|
||||
The call to amd64_collect_native_gregset, above, is setting
|
||||
the high 32 bits of RAX (and other registers too) to 0. For
|
||||
syscall restart, we need to sign extend EAX so that RAX will
|
||||
appear as a negative value when EAX is set to -ERESTARTSYS.
|
||||
appear as a negative value when EAX is set to -ERESTARTSYS.
|
||||
This in turn will cause the signal handling code in the
|
||||
kernel to recognize -ERESTARTSYS which will in turn cause the
|
||||
syscall to be restarted.
|
||||
@@ -153,7 +153,7 @@ amd64_linux_collect_native_gregset (const struct regcache *regcache,
|
||||
|
||||
if (regnum == -1 || regnum == I386_EAX_REGNUM)
|
||||
{
|
||||
void *ptr = ((gdb_byte *) gregs
|
||||
void *ptr = ((gdb_byte *) gregs
|
||||
+ amd64_linux_gregset32_reg_offset[I386_EAX_REGNUM]);
|
||||
|
||||
*(int64_t *) ptr = *(int32_t *) ptr;
|
||||
|
||||
@@ -295,7 +295,7 @@ static int amd64_linux_sc_reg_offset[] =
|
||||
static int
|
||||
amd64_linux_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
|
||||
const struct reggroup *group)
|
||||
{
|
||||
{
|
||||
if (regnum == AMD64_LINUX_ORIG_RAX_REGNUM)
|
||||
return (group == system_reggroup
|
||||
|| group == save_reggroup
|
||||
@@ -370,8 +370,8 @@ amd64_all_but_ip_registers_record (struct regcache *regcache)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* amd64_canonicalize_syscall maps from the native amd64 Linux set
|
||||
of syscall ids into a canonical set of syscall ids used by
|
||||
/* amd64_canonicalize_syscall maps from the native amd64 Linux set
|
||||
of syscall ids into a canonical set of syscall ids used by
|
||||
process record. */
|
||||
|
||||
static enum gdb_syscall
|
||||
@@ -1521,7 +1521,7 @@ amd64_linux_syscall_record_common (struct regcache *regcache,
|
||||
{
|
||||
gdb_printf (gdb_stderr,
|
||||
_("Process record and replay target doesn't "
|
||||
"support syscall number %s\n"),
|
||||
"support syscall number %s\n"),
|
||||
pulongest (syscall_native));
|
||||
return -1;
|
||||
}
|
||||
@@ -1752,7 +1752,7 @@ amd64_dtrace_probe_is_enabled (struct gdbarch *gdbarch, CORE_ADDR addr)
|
||||
|
||||
Note that ADDR is offset 3 bytes from the beginning of these
|
||||
sequences. */
|
||||
|
||||
|
||||
read_code (addr - 3, buf, 5);
|
||||
return (memcmp (buf, amd64_dtrace_disabled_probe_sequence_1, 5) != 0
|
||||
&& memcmp (buf, amd64_dtrace_disabled_probe_sequence_2, 5) != 0);
|
||||
|
||||
@@ -367,7 +367,7 @@ amd64obsd_trapframe_this_id (const frame_info_ptr &this_frame,
|
||||
{
|
||||
struct trad_frame_cache *cache =
|
||||
amd64obsd_trapframe_cache (this_frame, this_cache);
|
||||
|
||||
|
||||
trad_frame_get_id (cache, this_id);
|
||||
}
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
|
||||
/* Register information. */
|
||||
|
||||
static const char * const amd64_register_names[] =
|
||||
static const char * const amd64_register_names[] =
|
||||
{
|
||||
"rax", "rbx", "rcx", "rdx", "rsi", "rdi", "rbp", "rsp",
|
||||
|
||||
@@ -79,7 +79,7 @@ static const char * const amd64_register_names[] =
|
||||
"mxcsr",
|
||||
};
|
||||
|
||||
static const char * const amd64_ymm_names[] =
|
||||
static const char * const amd64_ymm_names[] =
|
||||
{
|
||||
"ymm0", "ymm1", "ymm2", "ymm3",
|
||||
"ymm4", "ymm5", "ymm6", "ymm7",
|
||||
@@ -95,7 +95,7 @@ static const char * const amd64_ymm_avx512_names[] =
|
||||
"ymm28", "ymm29", "ymm30", "ymm31"
|
||||
};
|
||||
|
||||
static const char * const amd64_ymmh_names[] =
|
||||
static const char * const amd64_ymmh_names[] =
|
||||
{
|
||||
"ymm0h", "ymm1h", "ymm2h", "ymm3h",
|
||||
"ymm4h", "ymm5h", "ymm6h", "ymm7h",
|
||||
@@ -329,7 +329,7 @@ static const char * const amd64_byte_names[] =
|
||||
|
||||
static const char * const amd64_word_names[] =
|
||||
{
|
||||
"ax", "bx", "cx", "dx", "si", "di", "bp", "",
|
||||
"ax", "bx", "cx", "dx", "si", "di", "bp", "",
|
||||
"r8w", "r9w", "r10w", "r11w", "r12w", "r13w", "r14w", "r15w"
|
||||
};
|
||||
|
||||
@@ -337,7 +337,7 @@ static const char * const amd64_word_names[] =
|
||||
|
||||
static const char * const amd64_dword_names[] =
|
||||
{
|
||||
"eax", "ebx", "ecx", "edx", "esi", "edi", "ebp", "esp",
|
||||
"eax", "ebx", "ecx", "edx", "esi", "edi", "ebp", "esp",
|
||||
"r8d", "r9d", "r10d", "r11d", "r12d", "r13d", "r14d", "r15d",
|
||||
"eip"
|
||||
};
|
||||
@@ -1021,7 +1021,7 @@ if (return_method == return_method_struct)
|
||||
containing ellipsis (...) in the declaration) %al is used as
|
||||
hidden argument to specify the number of SSE registers used. */
|
||||
regcache_raw_write_unsigned (regcache, AMD64_RAX_REGNUM, sse_reg);
|
||||
return sp;
|
||||
return sp;
|
||||
}
|
||||
|
||||
static CORE_ADDR
|
||||
@@ -2213,7 +2213,7 @@ amd64_analyze_stack_align (CORE_ADDR pc, CORE_ADDR current_pc,
|
||||
pushq -8(%reg)
|
||||
|
||||
"andq $-XXX, %rsp" can be either 4 bytes or 7 bytes:
|
||||
|
||||
|
||||
0x48 0x83 0xe4 0xf0 andq $-16, %rsp
|
||||
0x48 0x81 0xe4 0x00 0xff 0xff 0xff andq $-256, %rsp
|
||||
*/
|
||||
@@ -2279,7 +2279,7 @@ amd64_analyze_stack_align (CORE_ADDR pc, CORE_ADDR current_pc,
|
||||
/* MOD must be binary 10 and R/M must be binary 100. */
|
||||
if ((buf[offset + 2] & 0xc7) != 0x44)
|
||||
return pc;
|
||||
|
||||
|
||||
/* REG has register number. */
|
||||
r = (buf[offset + 2] >> 3) & 7;
|
||||
|
||||
@@ -2345,7 +2345,7 @@ amd64_analyze_stack_align (CORE_ADDR pc, CORE_ADDR current_pc,
|
||||
|
||||
static CORE_ADDR
|
||||
amd64_x32_analyze_stack_align (CORE_ADDR pc, CORE_ADDR current_pc,
|
||||
struct amd64_frame_cache *cache)
|
||||
struct amd64_frame_cache *cache)
|
||||
{
|
||||
/* There are 2 code sequences to re-align stack before the frame
|
||||
gets set up:
|
||||
@@ -2377,12 +2377,12 @@ amd64_x32_analyze_stack_align (CORE_ADDR pc, CORE_ADDR current_pc,
|
||||
[addr32] pushq -8(%reg)
|
||||
|
||||
"andq $-XXX, %rsp" can be either 4 bytes or 7 bytes:
|
||||
|
||||
|
||||
0x48 0x83 0xe4 0xf0 andq $-16, %rsp
|
||||
0x48 0x81 0xe4 0x00 0xff 0xff 0xff andq $-256, %rsp
|
||||
|
||||
"andl $-XXX, %esp" can be either 3 bytes or 6 bytes:
|
||||
|
||||
|
||||
0x83 0xe4 0xf0 andl $-16, %esp
|
||||
0x81 0xe4 0x00 0xff 0xff 0xff andl $-256, %esp
|
||||
*/
|
||||
@@ -2454,7 +2454,7 @@ amd64_x32_analyze_stack_align (CORE_ADDR pc, CORE_ADDR current_pc,
|
||||
/* MOD must be binary 10 and R/M must be binary 100. */
|
||||
if ((buf[offset + 2] & 0xc7) != 0x44)
|
||||
return pc;
|
||||
|
||||
|
||||
/* REG has register number. */
|
||||
r = (buf[offset + 2] >> 3) & 7;
|
||||
|
||||
@@ -3379,7 +3379,7 @@ static const struct frame_unwind_legacy amd64_epilogue_frame_unwind (
|
||||
amd64_epilogue_frame_unwind_stop_reason,
|
||||
amd64_epilogue_frame_this_id,
|
||||
amd64_frame_prev_register,
|
||||
NULL,
|
||||
NULL,
|
||||
amd64_epilogue_frame_sniffer
|
||||
);
|
||||
|
||||
|
||||
@@ -257,7 +257,7 @@ cannot_register_not (struct gdbarch *gdbarch, int regnum)
|
||||
cooked or raw. */
|
||||
|
||||
void
|
||||
legacy_virtual_frame_pointer (struct gdbarch *gdbarch,
|
||||
legacy_virtual_frame_pointer (struct gdbarch *gdbarch,
|
||||
CORE_ADDR pc,
|
||||
int *frame_regnum,
|
||||
LONGEST *frame_offset)
|
||||
@@ -692,7 +692,7 @@ void
|
||||
initialize_current_architecture (void)
|
||||
{
|
||||
arches = gdbarch_printable_names ();
|
||||
|
||||
|
||||
/* Find a default architecture. */
|
||||
if (default_bfd_arch == NULL)
|
||||
{
|
||||
@@ -1538,7 +1538,7 @@ core_file_exec_context::environment () const
|
||||
INIT_GDB_FILE (gdbarch_utils)
|
||||
{
|
||||
add_setshow_enum_cmd ("endian", class_support,
|
||||
endian_enum, &set_endian_string,
|
||||
endian_enum, &set_endian_string,
|
||||
_("Set endianness of target."),
|
||||
_("Show endianness of target."),
|
||||
NULL, set_endian, show_endian,
|
||||
|
||||
@@ -481,7 +481,7 @@ arm_linux_nat_target::store_registers (struct regcache *regcache, int regno)
|
||||
thread debugging. */
|
||||
|
||||
void
|
||||
fill_gregset (const struct regcache *regcache,
|
||||
fill_gregset (const struct regcache *regcache,
|
||||
gdb_gregset_t *gregsetp, int regno)
|
||||
{
|
||||
arm_linux_collect_gregset (NULL, regcache, regno, gregsetp, 0);
|
||||
@@ -591,7 +591,7 @@ struct arm_linux_hwbp_cap
|
||||
#define MAX_WPTS 16
|
||||
|
||||
/* Get hold of the Hardware Breakpoint information for the target we are
|
||||
attached to. Returns NULL if the kernel doesn't support Hardware
|
||||
attached to. Returns NULL if the kernel doesn't support Hardware
|
||||
breakpoints at all, or a pointer to the information structure. */
|
||||
static const struct arm_linux_hwbp_cap *
|
||||
arm_linux_get_hwbp_cap (void)
|
||||
@@ -710,7 +710,7 @@ struct arm_linux_hw_breakpoint
|
||||
/* Structure containing arrays of per process hardware break-/watchpoints
|
||||
for caching address and control information.
|
||||
|
||||
The Linux ptrace interface to hardware break-/watch-points presents the
|
||||
The Linux ptrace interface to hardware break-/watch-points presents the
|
||||
values in a vector centred around 0 (which is used fo generic information).
|
||||
Positive indices refer to breakpoint addresses/control registers, negative
|
||||
indices to watchpoint addresses/control registers.
|
||||
@@ -722,8 +722,8 @@ struct arm_linux_hw_breakpoint
|
||||
((i << 1) + 1): Address register for breakpoint i.
|
||||
((i << 1) + 2): Control register for breakpoint i.
|
||||
|
||||
This structure is used as a per-thread cache of the state stored by the
|
||||
kernel, so that we don't need to keep calling into the kernel to find a
|
||||
This structure is used as a per-thread cache of the state stored by the
|
||||
kernel, so that we don't need to keep calling into the kernel to find a
|
||||
free breakpoint.
|
||||
|
||||
We treat break-/watch-points with their enable bit clear as being deleted.
|
||||
@@ -852,16 +852,16 @@ arm_linux_get_debug_reg_state (pid_t pid)
|
||||
}
|
||||
|
||||
/* Initialize an ARM hardware break-/watch-point control register value.
|
||||
BYTE_ADDRESS_SELECT is the mask of bytes to trigger on; HWBP_TYPE is the
|
||||
BYTE_ADDRESS_SELECT is the mask of bytes to trigger on; HWBP_TYPE is the
|
||||
type of break-/watch-point; ENABLE indicates whether the point is enabled.
|
||||
*/
|
||||
static arm_hwbp_control_t
|
||||
static arm_hwbp_control_t
|
||||
arm_hwbp_control_initialize (unsigned byte_address_select,
|
||||
arm_hwbp_type hwbp_type,
|
||||
int enable)
|
||||
{
|
||||
gdb_assert ((byte_address_select & ~0xffU) == 0);
|
||||
gdb_assert (hwbp_type != arm_hwbp_break
|
||||
gdb_assert (hwbp_type != arm_hwbp_break
|
||||
|| ((byte_address_select & 0xfU) != 0));
|
||||
|
||||
return (byte_address_select << 5) | (hwbp_type << 3) | (3 << 1) | enable;
|
||||
@@ -918,7 +918,7 @@ arm_linux_hw_breakpoint_initialize (struct gdbarch *gdbarch,
|
||||
|
||||
/* Get the ARM hardware breakpoint type from the TYPE value we're
|
||||
given when asked to set a watchpoint. */
|
||||
static arm_hwbp_type
|
||||
static arm_hwbp_type
|
||||
arm_linux_get_hwbp_type (enum target_hw_bp_type type)
|
||||
{
|
||||
if (type == hw_read)
|
||||
@@ -945,7 +945,7 @@ arm_linux_hw_watchpoint_initialize (CORE_ADDR addr, int len,
|
||||
mask = (1 << len) - 1;
|
||||
|
||||
p->address = (unsigned int) addr;
|
||||
p->control = arm_hwbp_control_initialize (mask,
|
||||
p->control = arm_hwbp_control_initialize (mask,
|
||||
arm_linux_get_hwbp_type (type), 1);
|
||||
}
|
||||
|
||||
@@ -984,7 +984,7 @@ update_registers_callback (struct lwp_info *lwp, int watch, int index)
|
||||
/* Insert the hardware breakpoint (WATCHPOINT = 0) or watchpoint (WATCHPOINT
|
||||
=1) BPT for thread TID. */
|
||||
static void
|
||||
arm_linux_insert_hw_breakpoint1 (const struct arm_linux_hw_breakpoint* bpt,
|
||||
arm_linux_insert_hw_breakpoint1 (const struct arm_linux_hw_breakpoint* bpt,
|
||||
int watchpoint)
|
||||
{
|
||||
int pid;
|
||||
@@ -1025,7 +1025,7 @@ arm_linux_insert_hw_breakpoint1 (const struct arm_linux_hw_breakpoint* bpt,
|
||||
/* Remove the hardware breakpoint (WATCHPOINT = 0) or watchpoint
|
||||
(WATCHPOINT = 1) BPT for thread TID. */
|
||||
static void
|
||||
arm_linux_remove_hw_breakpoint1 (const struct arm_linux_hw_breakpoint *bpt,
|
||||
arm_linux_remove_hw_breakpoint1 (const struct arm_linux_hw_breakpoint *bpt,
|
||||
int watchpoint)
|
||||
{
|
||||
int pid;
|
||||
@@ -1097,7 +1097,7 @@ arm_linux_nat_target::remove_hw_breakpoint (struct gdbarch *gdbarch,
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Are we able to use a hardware watchpoint for the LEN bytes starting at
|
||||
/* Are we able to use a hardware watchpoint for the LEN bytes starting at
|
||||
ADDR? */
|
||||
int
|
||||
arm_linux_nat_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
|
||||
|
||||
@@ -93,11 +93,11 @@ static const gdb_byte arm_linux_thumb2_be_breakpoint[] = { 0xf7, 0xf0, 0xa0, 0x0
|
||||
|
||||
static const gdb_byte arm_linux_thumb2_le_breakpoint[] = { 0xf0, 0xf7, 0x00, 0xa0 };
|
||||
|
||||
/* Description of the longjmp buffer. The buffer is treated as an array of
|
||||
/* Description of the longjmp buffer. The buffer is treated as an array of
|
||||
elements of size ARM_LINUX_JB_ELEMENT_SIZE.
|
||||
|
||||
The location of saved registers in this buffer (in particular the PC
|
||||
to use after longjmp is called) varies depending on the ABI (in
|
||||
to use after longjmp is called) varies depending on the ABI (in
|
||||
particular the FP model) and also (possibly) the C Library. */
|
||||
#define ARM_LINUX_JB_ELEMENT_SIZE ARM_INT_REGISTER_SIZE
|
||||
/* For the FPA model the PC is at offset 21 in the buffer. */
|
||||
@@ -144,7 +144,7 @@ static const gdb_byte arm_linux_thumb2_le_breakpoint[] = { 0xf0, 0xf7, 0x00, 0xa
|
||||
with the real function address. Subsequent calls go through steps
|
||||
1, 2 and 3 and end up calling the real code.
|
||||
|
||||
1) In the code:
|
||||
1) In the code:
|
||||
|
||||
b function_call
|
||||
bl function_call
|
||||
@@ -870,7 +870,7 @@ arm_linux_get_syscall_number (struct gdbarch *gdbarch,
|
||||
}
|
||||
else
|
||||
{
|
||||
enum bfd_endian byte_order_for_code =
|
||||
enum bfd_endian byte_order_for_code =
|
||||
gdbarch_byte_order_for_code (gdbarch);
|
||||
|
||||
/* PC gets incremented before the syscall-stop, so read the
|
||||
@@ -918,9 +918,9 @@ arm_linux_get_next_pcs_syscall_next_pc (struct arm_get_next_pcs *self)
|
||||
else
|
||||
{
|
||||
struct gdbarch *gdbarch = regcache->arch ();
|
||||
enum bfd_endian byte_order_for_code =
|
||||
enum bfd_endian byte_order_for_code =
|
||||
gdbarch_byte_order_for_code (gdbarch);
|
||||
unsigned long this_instr =
|
||||
unsigned long this_instr =
|
||||
read_memory_unsigned_integer (pc, 4, byte_order_for_code);
|
||||
|
||||
unsigned long svc_operand = (0x00ffffff & this_instr);
|
||||
|
||||
@@ -183,7 +183,7 @@ store_register (const struct regcache *regcache, int regno)
|
||||
unsigned pc_val;
|
||||
|
||||
regcache->raw_collect (ARM_PC_REGNUM, (char *) &pc_val);
|
||||
|
||||
|
||||
pc_val = gdbarch_addr_bits_remove (gdbarch, pc_val);
|
||||
inferior_registers.r_pc ^= gdbarch_addr_bits_remove
|
||||
(gdbarch, inferior_registers.r_pc);
|
||||
@@ -249,7 +249,7 @@ store_regs (const struct regcache *regcache)
|
||||
|
||||
regcache->raw_collect (ARM_PC_REGNUM, (char *) &pc_val);
|
||||
regcache->raw_collect (ARM_PS_REGNUM, (char *) &psr_val);
|
||||
|
||||
|
||||
pc_val = gdbarch_addr_bits_remove (gdbarch, pc_val);
|
||||
psr_val ^= gdbarch_addr_bits_remove (gdbarch, psr_val);
|
||||
|
||||
|
||||
@@ -1873,7 +1873,7 @@ arm_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
|
||||
SP -> -12 additional stack space (12 bytes)
|
||||
The frame size would thus be 36 bytes, and the frame offset would be
|
||||
12 bytes. The frame register is R7.
|
||||
|
||||
|
||||
The comments for thumb_skip_prolog() describe the algorithm we use
|
||||
to detect the end of the prolog. */
|
||||
|
||||
@@ -1977,7 +1977,7 @@ arm_analyze_prologue (struct gdbarch *gdbarch,
|
||||
Be careful, however, and if it doesn't look like a prologue,
|
||||
don't try to scan it. If, for instance, a frameless function
|
||||
begins with stmfd sp!, then we will tell ourselves there is
|
||||
a frame, which will confuse stack traceback, as well as "finish"
|
||||
a frame, which will confuse stack traceback, as well as "finish"
|
||||
and other operations that rely on a knowledge of the stack
|
||||
traceback. */
|
||||
|
||||
@@ -2530,7 +2530,7 @@ arm_obj_section_from_vma (struct objfile *objfile, bfd_vma vma)
|
||||
|
||||
The extracted and normalized instructions are stored for later
|
||||
retrieval by the arm_find_exidx_entry routine. */
|
||||
|
||||
|
||||
static void
|
||||
arm_exidx_new_objfile (struct objfile *objfile)
|
||||
{
|
||||
@@ -2648,7 +2648,7 @@ arm_exidx_new_objfile (struct objfile *objfile)
|
||||
pers_sec = arm_obj_section_from_vma (objfile, pers);
|
||||
if (pers_sec)
|
||||
{
|
||||
static const char *personality[] =
|
||||
static const char *personality[] =
|
||||
{
|
||||
"__gcc_personality_v0",
|
||||
"__gxx_personality_v0",
|
||||
@@ -3154,7 +3154,7 @@ arm_exidx_unwind_sniffer (const struct frame_unwind *self,
|
||||
exc_valid = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Bail out if we don't know that exception information is valid. */
|
||||
if (!exc_valid)
|
||||
return 0;
|
||||
@@ -4784,7 +4784,7 @@ arm_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
si = push_stack_item (si, val, ARM_INT_REGISTER_SIZE);
|
||||
nstack += ARM_INT_REGISTER_SIZE;
|
||||
}
|
||||
|
||||
|
||||
/* Doubleword aligned quantities must go in even register pairs. */
|
||||
if (may_use_core_reg
|
||||
&& argreg <= ARM_LAST_ARG_REGNUM
|
||||
@@ -4842,7 +4842,7 @@ arm_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
|
||||
si = push_stack_item (si, buf, ARM_INT_REGISTER_SIZE);
|
||||
nstack += ARM_INT_REGISTER_SIZE;
|
||||
}
|
||||
|
||||
|
||||
len -= partial_len;
|
||||
val += partial_len;
|
||||
}
|
||||
@@ -8731,7 +8731,7 @@ gdb_print_insn_arm (bfd_vma memaddr, disassemble_info *info)
|
||||
if (csym.native == NULL)
|
||||
{
|
||||
/* Create a fake symbol vector containing a Thumb symbol.
|
||||
This is solely so that the code in print_insn_little_arm()
|
||||
This is solely so that the code in print_insn_little_arm()
|
||||
and print_insn_big_arm() in opcodes/arm-dis.c will detect
|
||||
the presence of a Thumb symbol and switch to decoding
|
||||
Thumb instructions. */
|
||||
@@ -8768,12 +8768,12 @@ gdb_print_insn_arm (bfd_vma memaddr, disassemble_info *info)
|
||||
/* The following define instruction sequences that will cause ARM
|
||||
cpu's to take an undefined instruction trap. These are used to
|
||||
signal a breakpoint to GDB.
|
||||
|
||||
|
||||
The newer ARMv4T cpu's are capable of operating in ARM or Thumb
|
||||
modes. A different instruction is required for each mode. The ARM
|
||||
cpu's can also be big or little endian. Thus four different
|
||||
instructions are needed to support all cases.
|
||||
|
||||
|
||||
Note: ARMv4 defines several new instructions that will take the
|
||||
undefined instruction trap. ARM7TDMI is nominally ARMv4T, but does
|
||||
not in fact add the new instructions. The new undefined
|
||||
@@ -8781,14 +8781,14 @@ gdb_print_insn_arm (bfd_vma memaddr, disassemble_info *info)
|
||||
behavior in earlier chips. There is no guarantee that they will
|
||||
raise an exception, but may be treated as NOP's. In practice, it
|
||||
may only safe to rely on instructions matching:
|
||||
|
||||
3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
|
||||
|
||||
3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
|
||||
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
|
||||
C C C C 0 1 1 x x x x x x x x x x x x x x x x x x x x 1 x x x x
|
||||
|
||||
|
||||
Even this may only true if the condition predicate is true. The
|
||||
following use a condition predicate of ALWAYS so it is always TRUE.
|
||||
|
||||
|
||||
There are other ways of forcing a breakpoint. GNU/Linux, RISC iX,
|
||||
and NetBSD all use a software interrupt rather than an undefined
|
||||
instruction to force a trap. This can be handled by by the
|
||||
@@ -8975,7 +8975,7 @@ arm_extract_return_value (struct type *type, struct regcache *regs,
|
||||
/* By using store_unsigned_integer we avoid having to do
|
||||
anything special for small big-endian values. */
|
||||
regcache_cooked_read_unsigned (regs, regno++, &tmp);
|
||||
store_unsigned_integer (valbuf,
|
||||
store_unsigned_integer (valbuf,
|
||||
(len > ARM_INT_REGISTER_SIZE
|
||||
? ARM_INT_REGISTER_SIZE : len),
|
||||
byte_order, tmp);
|
||||
@@ -8986,7 +8986,7 @@ arm_extract_return_value (struct type *type, struct regcache *regs,
|
||||
else
|
||||
{
|
||||
/* For a structure or union the behavior is as if the value had
|
||||
been stored to word-aligned memory and then loaded into
|
||||
been stored to word-aligned memory and then loaded into
|
||||
registers with 32-bit load instruction(s). */
|
||||
int len = type->length ();
|
||||
int regno = ARM_A1_REGNUM;
|
||||
@@ -9109,7 +9109,7 @@ arm_return_in_memory (struct gdbarch *gdbarch, struct type *type)
|
||||
/* If bitpos != 0, then we have to care about it. */
|
||||
if (type->field (i).loc_bitpos () != 0)
|
||||
{
|
||||
/* Bitfields are not addressable. If the field bitsize is
|
||||
/* Bitfields are not addressable. If the field bitsize is
|
||||
zero, then the field is not packed. Hence it cannot be
|
||||
a bitfield or any other packed type. */
|
||||
if (type->field (i).bitsize () == 0)
|
||||
@@ -9216,7 +9216,7 @@ arm_store_return_value (struct type *type, struct regcache *regs,
|
||||
else
|
||||
{
|
||||
/* For a structure or union the behavior is as if the value had
|
||||
been stored to word-aligned memory and then loaded into
|
||||
been stored to word-aligned memory and then loaded into
|
||||
registers with 32-bit load instruction(s). */
|
||||
int len = type->length ();
|
||||
int regno = ARM_A1_REGNUM;
|
||||
@@ -9349,7 +9349,7 @@ arm_get_longjmp_target (const frame_info_ptr &frame, CORE_ADDR *pc)
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
CORE_ADDR jb_addr;
|
||||
gdb_byte buf[ARM_INT_REGISTER_SIZE];
|
||||
|
||||
|
||||
jb_addr = get_frame_register_unsigned (frame, ARM_A1_REGNUM);
|
||||
|
||||
if (target_read_memory (jb_addr + tdep->jb_pc * tdep->jb_elt_size, buf,
|
||||
@@ -9719,11 +9719,11 @@ coff_sym_is_thumb (int val)
|
||||
|
||||
/* arm_coff_make_msymbol_special()
|
||||
arm_elf_make_msymbol_special()
|
||||
|
||||
|
||||
These functions test whether the COFF or ELF symbol corresponds to
|
||||
an address in thumb code, and set a "special" bit in a minimal
|
||||
symbol to indicate that it does. */
|
||||
|
||||
|
||||
static void
|
||||
arm_elf_make_msymbol_special (const asymbol *sym, struct minimal_symbol *msym)
|
||||
{
|
||||
@@ -11157,7 +11157,7 @@ vfp - VFP co-processor."),
|
||||
|
||||
/* ARM-reversible process record data structures. */
|
||||
|
||||
#define ARM_INSN_SIZE_BYTES 4
|
||||
#define ARM_INSN_SIZE_BYTES 4
|
||||
#define THUMB_INSN_SIZE_BYTES 2
|
||||
#define THUMB2_INSN_SIZE_BYTES 4
|
||||
|
||||
@@ -11268,7 +11268,7 @@ enum record_type_t
|
||||
|
||||
|
||||
static int
|
||||
arm_record_strx (arm_insn_decode_record *arm_insn_r, uint32_t *record_buf,
|
||||
arm_record_strx (arm_insn_decode_record *arm_insn_r, uint32_t *record_buf,
|
||||
uint32_t *record_buf_mem, arm_record_strx_t str_type)
|
||||
{
|
||||
|
||||
@@ -11469,7 +11469,7 @@ arm_record_extension_space (arm_insn_decode_record *arm_insn_r)
|
||||
if (3 == opcode1 && bit (arm_insn_r->arm_insn, 4))
|
||||
{
|
||||
ret = -1;
|
||||
/* Undefined instruction on ARM V5; need to handle if later
|
||||
/* Undefined instruction on ARM V5; need to handle if later
|
||||
versions define it. */
|
||||
}
|
||||
|
||||
@@ -11569,7 +11569,7 @@ arm_record_extension_space (arm_insn_decode_record *arm_insn_r)
|
||||
/* Save SPSR also;how? */
|
||||
return -1;
|
||||
}
|
||||
else if(8 == bits (arm_insn_r->arm_insn, 4, 7)
|
||||
else if(8 == bits (arm_insn_r->arm_insn, 4, 7)
|
||||
|| 10 == bits (arm_insn_r->arm_insn, 4, 7)
|
||||
|| 12 == bits (arm_insn_r->arm_insn, 4, 7)
|
||||
|| 14 == bits (arm_insn_r->arm_insn, 4, 7)
|
||||
@@ -11623,7 +11623,7 @@ arm_record_extension_space (arm_insn_decode_record *arm_insn_r)
|
||||
|
||||
/* Handle load/store insn extension space. */
|
||||
|
||||
if (!opcode1 && bit (arm_insn_r->arm_insn, 7)
|
||||
if (!opcode1 && bit (arm_insn_r->arm_insn, 7)
|
||||
&& bit (arm_insn_r->arm_insn, 4) && 1 != arm_insn_r->cond
|
||||
&& !INSN_RECORDED(arm_insn_r))
|
||||
{
|
||||
@@ -12289,7 +12289,7 @@ arm_record_ld_st_reg_offset (arm_insn_decode_record *arm_insn_r)
|
||||
/* STR. */
|
||||
case 8:
|
||||
case 12:
|
||||
/* STR. */
|
||||
/* STR. */
|
||||
case 9:
|
||||
case 13:
|
||||
/* STRT. */
|
||||
@@ -12307,7 +12307,7 @@ arm_record_ld_st_reg_offset (arm_insn_decode_record *arm_insn_r)
|
||||
/* STRB. */
|
||||
case 11:
|
||||
case 15:
|
||||
/* STRBT. */
|
||||
/* STRBT. */
|
||||
case 3:
|
||||
case 7:
|
||||
/* STRB. */
|
||||
@@ -12419,7 +12419,7 @@ arm_record_ld_st_reg_offset (arm_insn_decode_record *arm_insn_r)
|
||||
/* STR. */
|
||||
case 8:
|
||||
case 12:
|
||||
/* STR. */
|
||||
/* STR. */
|
||||
case 9:
|
||||
case 13:
|
||||
/* STRT. */
|
||||
@@ -12437,7 +12437,7 @@ arm_record_ld_st_reg_offset (arm_insn_decode_record *arm_insn_r)
|
||||
/* STRB. */
|
||||
case 11:
|
||||
case 15:
|
||||
/* STRBT. */
|
||||
/* STRBT. */
|
||||
case 3:
|
||||
case 7:
|
||||
/* STRB. */
|
||||
@@ -12510,7 +12510,7 @@ arm_record_ld_st_multiple (arm_insn_decode_record *arm_insn_r)
|
||||
register_count++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* If wback is true, also save the base register, which is going to be
|
||||
written to. */
|
||||
if (wback)
|
||||
@@ -12523,7 +12523,7 @@ arm_record_ld_st_multiple (arm_insn_decode_record *arm_insn_r)
|
||||
{
|
||||
/* STM (STMIA, STMEA), STMDA (STMED), STMDB (STMFD) and STMIB (STMFA). */
|
||||
|
||||
addr_mode = bits (arm_insn_r->arm_insn, 23, 24);
|
||||
addr_mode = bits (arm_insn_r->arm_insn, 23, 24);
|
||||
|
||||
regcache_raw_read_unsigned (reg_cache, reg_base, &u_regval);
|
||||
|
||||
@@ -13450,7 +13450,7 @@ thumb_record_ld_st_imm_offset (arm_insn_decode_record *thumb_insn_r)
|
||||
}
|
||||
|
||||
REG_ALLOC (thumb_insn_r->arm_regs, thumb_insn_r->reg_rec_count, record_buf);
|
||||
MEM_ALLOC (thumb_insn_r->arm_mems, thumb_insn_r->mem_rec_count,
|
||||
MEM_ALLOC (thumb_insn_r->arm_mems, thumb_insn_r->mem_rec_count,
|
||||
record_buf_mem);
|
||||
|
||||
return 0;
|
||||
@@ -13616,7 +13616,7 @@ thumb_record_misc (arm_insn_decode_record *thumb_insn_r)
|
||||
/* CPSR is changed to be executed in ARM state, disabling normal
|
||||
interrupts, entering abort mode. */
|
||||
/* According to high vector configuration PC is set. */
|
||||
/* User hits breakpoint and type reverse, in that case, we need to go back with
|
||||
/* User hits breakpoint and type reverse, in that case, we need to go back with
|
||||
previous CPSR and Program Counter. */
|
||||
record_buf[0] = ARM_PS_REGNUM;
|
||||
record_buf[1] = ARM_LR_REGNUM;
|
||||
@@ -13754,12 +13754,12 @@ thumb_record_branch (arm_insn_decode_record *thumb_insn_r)
|
||||
thumb_insn_r->reg_rec_count = 2;
|
||||
}
|
||||
|
||||
/* B(2) is automatically taken care in process_record, as PC is
|
||||
/* B(2) is automatically taken care in process_record, as PC is
|
||||
saved there. */
|
||||
|
||||
REG_ALLOC (thumb_insn_r->arm_regs, thumb_insn_r->reg_rec_count, record_buf);
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Handler for thumb2 load/store multiple instructions. */
|
||||
@@ -14855,11 +14855,11 @@ arm_analyze_prologue_test ()
|
||||
|
||||
/* Cleans up local record registers and memory allocations. */
|
||||
|
||||
static void
|
||||
static void
|
||||
deallocate_reg_mem (arm_insn_decode_record *record)
|
||||
{
|
||||
xfree (record->arm_regs);
|
||||
xfree (record->arm_mems);
|
||||
xfree (record->arm_mems);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ extern bool arm_apcs_32;
|
||||
|
||||
#include <vector>
|
||||
|
||||
/* Number of machine registers. The only define actually required
|
||||
/* Number of machine registers. The only define actually required
|
||||
is gdbarch_num_regs. The other definitions are used for documentation
|
||||
purposes and code readability. */
|
||||
/* For 26 bit ARM code, a fake copy of the PC is placed in register 25 (PS)
|
||||
@@ -52,11 +52,11 @@ extern bool arm_apcs_32;
|
||||
/* Type of floating-point code in use by inferior. There are really 3 models
|
||||
that are traditionally supported (plus the endianness issue), but gcc can
|
||||
only generate 2 of those. The third is APCS_FLOAT, where arguments to
|
||||
functions are passed in floating-point registers.
|
||||
functions are passed in floating-point registers.
|
||||
|
||||
In addition to the traditional models, VFP adds two more.
|
||||
In addition to the traditional models, VFP adds two more.
|
||||
|
||||
If you update this enum, don't forget to update fp_model_strings in
|
||||
If you update this enum, don't forget to update fp_model_strings in
|
||||
arm-tdep.c. */
|
||||
|
||||
enum arm_float_model
|
||||
@@ -306,7 +306,7 @@ extern int arm_psr_thumb_bit (struct gdbarch *);
|
||||
instruction? */
|
||||
extern int arm_pc_is_thumb (struct gdbarch *, CORE_ADDR);
|
||||
|
||||
extern int arm_process_record (struct gdbarch *gdbarch,
|
||||
extern int arm_process_record (struct gdbarch *gdbarch,
|
||||
struct regcache *regcache, CORE_ADDR addr);
|
||||
/* Functions exported from arm-bsd-tdep.h. */
|
||||
|
||||
|
||||
@@ -127,9 +127,9 @@ initialize_async_signal_handlers (void)
|
||||
|
||||
/* Create an asynchronous handler, allocating memory for it.
|
||||
Return a pointer to the newly created handler.
|
||||
This pointer will be used to invoke the handler by
|
||||
This pointer will be used to invoke the handler by
|
||||
invoke_async_signal_handler.
|
||||
PROC is the function to call with CLIENT_DATA argument
|
||||
PROC is the function to call with CLIENT_DATA argument
|
||||
whenever the handler is invoked. */
|
||||
async_signal_handler *
|
||||
create_async_signal_handler (sig_handler_func * proc,
|
||||
|
||||
@@ -462,7 +462,7 @@ filename_is_in_auto_load_safe_path_vec (const char *filename,
|
||||
pattern = p.get ();
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (pattern == NULL)
|
||||
{
|
||||
if (*filename_realp == NULL)
|
||||
|
||||
@@ -481,7 +481,7 @@ avr_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
|
||||
sbiw r28, <LOCALS_SIZE>
|
||||
out __SP_H__, r29
|
||||
out __SP_L__, r28
|
||||
|
||||
|
||||
A interrupt handler prologue looks like this:
|
||||
sei
|
||||
push __zero_reg__
|
||||
@@ -498,7 +498,7 @@ avr_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
|
||||
sbiw r28, <LOCALS_SIZE>
|
||||
cli
|
||||
out __SP_H__, r29
|
||||
sei
|
||||
sei
|
||||
out __SP_L__, r28
|
||||
|
||||
A `-mcall-prologues' prologue looks like this (Note that the megas use a
|
||||
@@ -540,7 +540,7 @@ avr_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR pc_beg, CORE_ADDR pc_end,
|
||||
|
||||
/* FIXME: TRoth/2003-06-11: This could be made more efficient by only
|
||||
reading in the bytes of the prologue. The problem is that the figuring
|
||||
out where the end of the prologue is is a bit difficult. The old code
|
||||
out where the end of the prologue is is a bit difficult. The old code
|
||||
tried to do that, but failed quite often. */
|
||||
read_memory (pc_beg, prologue, len);
|
||||
|
||||
@@ -843,7 +843,7 @@ avr_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR pc_beg, CORE_ADDR pc_end,
|
||||
{
|
||||
vpc += sizeof (img_sig);
|
||||
}
|
||||
else if (vpc + sizeof (img_int) < len
|
||||
else if (vpc + sizeof (img_int) < len
|
||||
&& memcmp (prologue + vpc, img_int, sizeof (img_int)) == 0)
|
||||
{
|
||||
vpc += sizeof (img_int);
|
||||
@@ -873,7 +873,7 @@ avr_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR pc_beg, CORE_ADDR pc_end,
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
return pc_beg + vpc;
|
||||
}
|
||||
|
||||
@@ -898,13 +898,13 @@ avr_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
|
||||
trad_frame_saved_reg saved_regs[AVR_NUM_REGS];
|
||||
|
||||
info.saved_regs = saved_regs;
|
||||
|
||||
|
||||
/* Need to run the prologue scanner to figure out if the function has a
|
||||
prologue and possibly skip over moving arguments passed via registers
|
||||
to other registers. */
|
||||
|
||||
|
||||
prologue_end = avr_scan_prologue (gdbarch, func_addr, func_end, &info);
|
||||
|
||||
|
||||
if (info.prologue_type != AVR_PROLOGUE_NONE)
|
||||
return prologue_end;
|
||||
}
|
||||
@@ -1016,10 +1016,10 @@ avr_frame_unwind_cache (const frame_info_ptr &this_frame,
|
||||
this_base = get_frame_register_unsigned (this_frame, AVR_FP_REGNUM);
|
||||
high_base = get_frame_register_unsigned (this_frame, AVR_FP_REGNUM + 1);
|
||||
this_base += (high_base << 8);
|
||||
|
||||
|
||||
/* The FP points at the last saved register. Adjust the FP back
|
||||
to before the first saved register giving the SP. */
|
||||
prev_sp = this_base + info->size;
|
||||
prev_sp = this_base + info->size;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1124,7 +1124,7 @@ avr_frame_prev_register (const frame_info_ptr &this_frame,
|
||||
|
||||
Also, note that the value on the stack is an addr to a word
|
||||
not a byte, so we will need to multiply it by two at some
|
||||
point.
|
||||
point.
|
||||
|
||||
And to confuse matters even more, the return address stored
|
||||
on the stack is in big endian byte order, even though most
|
||||
@@ -1260,7 +1260,7 @@ pop_stack_item (struct avr_stack_item *si)
|
||||
optimization. I suspect this is a compiler bug. Arguments of these odd
|
||||
sizes are left-justified within the word (as opposed to arguments smaller
|
||||
than WORDSIZE bytes, which are right-justified).
|
||||
|
||||
|
||||
If the function is to return an aggregate type such as a struct, the caller
|
||||
must allocate space into which the callee will copy the return value. In
|
||||
this case, a pointer to the return value location is passed into the callee
|
||||
@@ -1469,7 +1469,7 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
gdbarch *gdbarch
|
||||
= gdbarch_alloc (&info, gdbarch_tdep_up (new avr_gdbarch_tdep));
|
||||
avr_gdbarch_tdep *tdep = gdbarch_tdep<avr_gdbarch_tdep> (gdbarch);
|
||||
|
||||
|
||||
tdep->call_length = call_length;
|
||||
|
||||
/* Create a type for PC. We can't use builtin types here, as they may not
|
||||
|
||||
14
gdb/ax-gdb.c
14
gdb/ax-gdb.c
@@ -303,7 +303,7 @@ gen_traced_pop (struct agent_expr *ax, struct axs_value *value)
|
||||
larger than will fit in a stack, so just mark it for
|
||||
collection and be done with it. */
|
||||
ax_reg_mask (ax, value->u.reg);
|
||||
|
||||
|
||||
/* But if the register points to a string, assume the value
|
||||
will fit on the stack and push it anyway. */
|
||||
if (string_trace)
|
||||
@@ -1424,7 +1424,7 @@ gen_struct_ref (struct agent_expr *ax, struct axs_value *value,
|
||||
|
||||
/* Search through fields and base classes recursively. */
|
||||
found = gen_struct_ref_recursive (ax, value, field, 0, type);
|
||||
|
||||
|
||||
if (!found)
|
||||
error (_("Couldn't find member named `%s' in struct/union/class `%s'"),
|
||||
field, type->name ());
|
||||
@@ -1457,7 +1457,7 @@ gen_static_field (struct agent_expr *ax, struct axs_value *value,
|
||||
if (sym)
|
||||
{
|
||||
gen_var_ref (ax, value, sym);
|
||||
|
||||
|
||||
/* Don't error if the value was optimized out, we may be
|
||||
scanning all static fields and just want to pass over this
|
||||
and continue with the rest. */
|
||||
@@ -1500,7 +1500,7 @@ gen_struct_elt_for_reference (struct agent_expr *ax, struct axs_value *value,
|
||||
if (t->field (i).is_packed ())
|
||||
error (_("pointers to bitfield members not allowed"));
|
||||
|
||||
/* FIXME we need a way to do "want_address" equivalent */
|
||||
/* FIXME we need a way to do "want_address" equivalent */
|
||||
|
||||
error (_("Cannot reference non-static field \"%s\""), fieldname);
|
||||
}
|
||||
@@ -1522,7 +1522,7 @@ gen_namespace_elt (struct agent_expr *ax, struct axs_value *value,
|
||||
int found = gen_maybe_namespace_elt (ax, value, curtype, name);
|
||||
|
||||
if (!found)
|
||||
error (_("No symbol \"%s\" in namespace \"%s\"."),
|
||||
error (_("No symbol \"%s\" in namespace \"%s\"."),
|
||||
name, curtype->name ());
|
||||
|
||||
return found;
|
||||
@@ -2177,7 +2177,7 @@ gen_expr_binop_rest (struct expression *exp,
|
||||
gen_binop (ax, value, value1, value2,
|
||||
aop_bit_or, aop_bit_or, 0, "bitwise or");
|
||||
break;
|
||||
|
||||
|
||||
case BINOP_BITWISE_XOR:
|
||||
gen_binop (ax, value, value1, value2,
|
||||
aop_bit_xor, aop_bit_xor, 0, "bitwise exclusive-or");
|
||||
@@ -2592,7 +2592,7 @@ maint_agent_printf_command (const char *cmdrest, int from_tty)
|
||||
|
||||
if (*cmdrest++ != '"')
|
||||
error (_("Bad format string, non-terminated '\"'."));
|
||||
|
||||
|
||||
cmdrest = skip_spaces (cmdrest);
|
||||
|
||||
if (*cmdrest != ',' && *cmdrest != 0)
|
||||
|
||||
10
gdb/bcache.c
10
gdb/bcache.c
@@ -64,7 +64,7 @@ bcache::expand_hash_table ()
|
||||
{
|
||||
/* A table of good hash table sizes. Whenever we grow, we pick the
|
||||
next larger size from this table. sizes[i] is close to 1 << (i+10),
|
||||
so we roughly double the table size each time. After we fall off
|
||||
so we roughly double the table size each time. After we fall off
|
||||
the end of this table, we just double. Don't laugh --- there have
|
||||
been executables sighted with a gigabyte of debug info. */
|
||||
static const unsigned long sizes[] = {
|
||||
@@ -282,7 +282,7 @@ bcache::print_statistics (const char *type)
|
||||
if (s)
|
||||
{
|
||||
occupied_buckets++;
|
||||
|
||||
|
||||
while (s)
|
||||
{
|
||||
gdb_assert (b < m_num_buckets);
|
||||
@@ -343,7 +343,7 @@ bcache::print_statistics (const char *type)
|
||||
gdb_printf ("%ld\n", m_unique_size / m_unique_count);
|
||||
else
|
||||
/* i18n: "Average entry size: (not applicable)". */
|
||||
gdb_printf (_("(not applicable)\n"));
|
||||
gdb_printf (_("(not applicable)\n"));
|
||||
gdb_printf (_(" Median entry size: %d\n"), median_entry_size);
|
||||
gdb_printf ("\n");
|
||||
|
||||
@@ -356,7 +356,7 @@ Total memory used by bcache, including overhead: %ld\n"),
|
||||
print_percentage (m_total_size - m_structure_size, m_total_size);
|
||||
gdb_printf ("\n");
|
||||
|
||||
gdb_printf (_(" Hash table size: %3d\n"),
|
||||
gdb_printf (_(" Hash table size: %3d\n"),
|
||||
m_num_buckets);
|
||||
gdb_printf (_(" Hash table expands: %lu\n"),
|
||||
m_expand_count);
|
||||
@@ -374,7 +374,7 @@ Total memory used by bcache, including overhead: %ld\n"),
|
||||
else
|
||||
/* i18n: "Average hash chain length: (not applicable)". */
|
||||
gdb_printf (_("(not applicable)\n"));
|
||||
gdb_printf (_(" Maximum hash chain length: %3d\n"),
|
||||
gdb_printf (_(" Maximum hash chain length: %3d\n"),
|
||||
max_chain_length);
|
||||
gdb_printf ("\n");
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
Mind you, looking at the wall clock, the same GDB debugging GDB
|
||||
showed only marginal speed up (0.780 vs 0.773s). Seems GDB is too
|
||||
busy doing something else :-(
|
||||
|
||||
|
||||
*/
|
||||
|
||||
namespace gdb {
|
||||
|
||||
@@ -141,7 +141,7 @@ find_symbol_for_pc_sect (CORE_ADDR pc, struct obj_section *section)
|
||||
}
|
||||
|
||||
/* Return the function containing pc value PC.
|
||||
Returns 0 if function is not known.
|
||||
Returns 0 if function is not known.
|
||||
Backward compatibility, no section */
|
||||
|
||||
struct symbol *
|
||||
|
||||
@@ -413,7 +413,7 @@ catch_syscall_split_args (const char *arg)
|
||||
/* Implement the "catch syscall" command. */
|
||||
|
||||
static void
|
||||
catch_syscall_command_1 (const char *arg, int from_tty,
|
||||
catch_syscall_command_1 (const char *arg, int from_tty,
|
||||
struct cmd_list_element *command)
|
||||
{
|
||||
int tempflag;
|
||||
|
||||
@@ -366,11 +366,11 @@ handle_gnu_v3_exceptions (int tempflag, std::string &&except_rx,
|
||||
|
||||
/* Look for an "if" token in *STRING. The "if" token must be preceded
|
||||
by whitespace.
|
||||
|
||||
|
||||
If there is any non-whitespace text between *STRING and the "if"
|
||||
token, then it is returned in a newly-xmalloc'd string. Otherwise,
|
||||
this returns NULL.
|
||||
|
||||
|
||||
STRING is updated to point to the "if" token, if it exists, or to
|
||||
the end of the string. */
|
||||
|
||||
|
||||
@@ -917,7 +917,7 @@ get_breakpoint (int num)
|
||||
for (breakpoint &b : all_breakpoints ())
|
||||
if (b.number == num)
|
||||
return &b;
|
||||
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -1544,7 +1544,7 @@ static_tracepoints_here (CORE_ADDR addr)
|
||||
validate that only allowed commands are included. */
|
||||
|
||||
void
|
||||
breakpoint_set_commands (struct breakpoint *b,
|
||||
breakpoint_set_commands (struct breakpoint *b,
|
||||
counted_command_line &&commands)
|
||||
{
|
||||
/* If the commands have not changed then there's no need to update
|
||||
@@ -2147,7 +2147,7 @@ add_dummy_location (struct breakpoint *b,
|
||||
* target_stopped_by_watchpoint and target_stopped_data_address are
|
||||
called several times when GDB stops.
|
||||
|
||||
[linux]
|
||||
[linux]
|
||||
* Multiple hardware watchpoints can be hit at the same time,
|
||||
causing GDB to stop. GDB only presents one hardware watchpoint
|
||||
hit at a time as the reason for stopping, and all the other hits
|
||||
@@ -2730,7 +2730,7 @@ parse_cmd_to_aexpr (CORE_ADDR scope, char *cmd)
|
||||
|
||||
if (*cmdrest++ != '"')
|
||||
error (_("Bad format string, non-terminated '\"'."));
|
||||
|
||||
|
||||
cmdrest = skip_spaces (cmdrest);
|
||||
|
||||
if (!(*cmdrest == ',' || *cmdrest == '\0'))
|
||||
@@ -3028,7 +3028,7 @@ insert_bp_location (struct bp_location *bl,
|
||||
Shall we set a breakpoint at the LMA? */
|
||||
if (!overlay_events_enabled)
|
||||
{
|
||||
/* Yes -- overlay event support is not active,
|
||||
/* Yes -- overlay event support is not active,
|
||||
so we must try to set a breakpoint at the LMA.
|
||||
This will not work for a hardware breakpoint. */
|
||||
if (bl->loc_type == bp_loc_hardware_breakpoint)
|
||||
@@ -3089,7 +3089,7 @@ insert_bp_location (struct bp_location *bl,
|
||||
}
|
||||
else
|
||||
{
|
||||
/* No. This breakpoint will not be inserted.
|
||||
/* No. This breakpoint will not be inserted.
|
||||
No error, but do not mark the bp as 'inserted'. */
|
||||
return 0;
|
||||
}
|
||||
@@ -3120,10 +3120,10 @@ insert_bp_location (struct bp_location *bl,
|
||||
notify_breakpoint_modified (bl->owner);
|
||||
if (!*disabled_breaks)
|
||||
{
|
||||
gdb_printf (tmp_error_stream,
|
||||
"Cannot insert breakpoint %d.\n",
|
||||
gdb_printf (tmp_error_stream,
|
||||
"Cannot insert breakpoint %d.\n",
|
||||
bl->owner->number);
|
||||
gdb_printf (tmp_error_stream,
|
||||
gdb_printf (tmp_error_stream,
|
||||
"Temporarily disabling shared "
|
||||
"library breakpoints:\n");
|
||||
}
|
||||
@@ -4228,7 +4228,7 @@ remove_breakpoint_1 (struct bp_location *bl, enum remove_bp_reason reason)
|
||||
if (!overlay_events_enabled)
|
||||
{
|
||||
/* Yes -- overlay event support is not active, so we
|
||||
should have set a breakpoint at the LMA. Remove it.
|
||||
should have set a breakpoint at the LMA. Remove it.
|
||||
*/
|
||||
/* Ignore any failures: if the LMA is in ROM, we will
|
||||
have already warned when we failed to insert it. */
|
||||
@@ -4240,7 +4240,7 @@ remove_breakpoint_1 (struct bp_location *bl, enum remove_bp_reason reason)
|
||||
&bl->overlay_target_info,
|
||||
reason);
|
||||
}
|
||||
/* Did we set a breakpoint at the VMA?
|
||||
/* Did we set a breakpoint at the VMA?
|
||||
If so, we will have marked the breakpoint 'inserted'. */
|
||||
if (bl->inserted)
|
||||
{
|
||||
@@ -4465,7 +4465,7 @@ breakpoint_here_p (const address_space *aspace, CORE_ADDR pc)
|
||||
|| bl->permanent)
|
||||
&& breakpoint_location_address_match (bl, aspace, pc))
|
||||
{
|
||||
if (overlay_debugging
|
||||
if (overlay_debugging
|
||||
&& section_is_overlay (bl->section)
|
||||
&& !section_is_mapped (bl->section))
|
||||
continue; /* unmapped overlay -- can't be a match */
|
||||
@@ -5165,14 +5165,14 @@ print_solib_event (bool is_catchpoint)
|
||||
|
||||
PRINT_UNKNOWN: Means we printed nothing.
|
||||
PRINT_SRC_AND_LOC: Means we printed something, and expect subsequent
|
||||
code to print the location. An example is
|
||||
code to print the location. An example is
|
||||
"Breakpoint 1, " which should be followed by
|
||||
the location.
|
||||
PRINT_SRC_ONLY: Means we printed something, but there is no need
|
||||
to also print the location part of the message.
|
||||
An example is the catch/throw messages, which
|
||||
don't require a location appended to the end.
|
||||
PRINT_NOTHING: We have done some printing and we don't need any
|
||||
PRINT_NOTHING: We have done some printing and we don't need any
|
||||
further info to be printed. */
|
||||
|
||||
enum print_stop_action
|
||||
@@ -5187,7 +5187,7 @@ bpstat_print (bpstat *bs, target_waitkind kind)
|
||||
for (; bs; bs = bs->next)
|
||||
{
|
||||
val = print_bp_stop_message (bs);
|
||||
if (val == PRINT_SRC_ONLY
|
||||
if (val == PRINT_SRC_ONLY
|
||||
|| val == PRINT_SRC_AND_LOC
|
||||
|| val == PRINT_NOTHING)
|
||||
return val;
|
||||
@@ -6426,7 +6426,7 @@ print_breakpoint_location (const breakpoint *b, const bp_location *loc)
|
||||
|
||||
if (uiout->is_mi_like_p ())
|
||||
uiout->field_string ("fullname", symtab_to_fullname (loc->symtab));
|
||||
|
||||
|
||||
uiout->field_signed ("line", loc->line_number,
|
||||
line_number_style.style ());
|
||||
}
|
||||
@@ -6561,7 +6561,7 @@ output_thread_groups (struct ui_out *uiout,
|
||||
uiout->text (" inf ");
|
||||
else
|
||||
uiout->text (", ");
|
||||
|
||||
|
||||
uiout->text (plongest (inf_nums[i]));
|
||||
}
|
||||
}
|
||||
@@ -6598,7 +6598,7 @@ print_one_breakpoint_location (struct breakpoint *b,
|
||||
gdb_assert (!loc || loc_number != 0);
|
||||
/* See comment in print_one_breakpoint concerning treatment of
|
||||
breakpoints with single disabled location. */
|
||||
if (loc == NULL
|
||||
if (loc == NULL
|
||||
&& (b->has_locations ()
|
||||
&& (b->has_multiple_locations ()
|
||||
|| !b->first_loc ().enabled || b->first_loc ().disabled_by_cond)))
|
||||
@@ -6765,7 +6765,7 @@ print_one_breakpoint_location (struct breakpoint *b,
|
||||
b->gdbarch, b->frame_id.stack_addr);
|
||||
uiout->text ("\n");
|
||||
}
|
||||
|
||||
|
||||
if (!part_of_multiple && b->cond_string)
|
||||
{
|
||||
annotate_field (7);
|
||||
@@ -7246,7 +7246,7 @@ default_collect_info (void)
|
||||
uiout->field_string ("default-collect", default_collect);
|
||||
uiout->text (" \n");
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
info_breakpoints_command (const char *args, int from_tty)
|
||||
{
|
||||
@@ -7332,7 +7332,7 @@ describe_other_breakpoints (struct gdbarch *gdbarch,
|
||||
|| b.enable_state == bp_call_disabled)
|
||||
? " (disabled)"
|
||||
: ""),
|
||||
(others > 1) ? ","
|
||||
(others > 1) ? ","
|
||||
: ((others == 1) ? " and" : ""));
|
||||
}
|
||||
current_uiout->message (_("also set at pc %ps.\n"),
|
||||
@@ -7380,12 +7380,12 @@ watchpoint_locations_match (const struct bp_location *loc1,
|
||||
true, not giving a chance for GDB to check the condition of the
|
||||
other watchpoint. */
|
||||
if ((w1->cond_exp
|
||||
&& target_can_accel_watchpoint_condition (loc1->address,
|
||||
&& target_can_accel_watchpoint_condition (loc1->address,
|
||||
loc1->length,
|
||||
loc1->watchpoint_type,
|
||||
w1->cond_exp.get ()))
|
||||
|| (w2->cond_exp
|
||||
&& target_can_accel_watchpoint_condition (loc2->address,
|
||||
&& target_can_accel_watchpoint_condition (loc2->address,
|
||||
loc2->length,
|
||||
loc2->watchpoint_type,
|
||||
w2->cond_exp.get ())))
|
||||
@@ -8937,7 +8937,7 @@ create_breakpoint_sal (struct gdbarch *gdbarch,
|
||||
function. In that case, it's still not possible to specify
|
||||
separate conditions for different overloaded functions, so
|
||||
we take just a single condition string.
|
||||
|
||||
|
||||
NOTE: If the function succeeds, the caller is expected to cleanup
|
||||
the arrays ADDR_STRING, COND_STRING, and SALS (but not the
|
||||
array contents). If the function fails (error() is called), the
|
||||
@@ -9074,7 +9074,7 @@ parse_breakpoint_sals (location_spec *locspec,
|
||||
|
||||
static void
|
||||
breakpoint_sals_to_pc (std::vector<symtab_and_line> &sals)
|
||||
{
|
||||
{
|
||||
for (auto &sal : sals)
|
||||
resolve_sal_pc (&sal);
|
||||
}
|
||||
@@ -10313,8 +10313,8 @@ is_masked_watchpoint (const struct breakpoint *b)
|
||||
return dynamic_cast<const masked_watchpoint *> (b) != nullptr;
|
||||
}
|
||||
|
||||
/* accessflag: hw_write: watch write,
|
||||
hw_read: watch read,
|
||||
/* accessflag: hw_write: watch write,
|
||||
hw_read: watch read,
|
||||
hw_access: watch access (read or write) */
|
||||
static void
|
||||
watch_command_1 (const char *arg, int accessflag, int from_tty,
|
||||
@@ -11078,14 +11078,14 @@ clear_command (const char *arg, int from_tty)
|
||||
file/line and pc set. So, if clear is given file/line, we can
|
||||
match this to existing breakpoint without obtaining pc at all.
|
||||
|
||||
We only support clearing given the address explicitly
|
||||
present in breakpoint table. Say, we've set breakpoint
|
||||
We only support clearing given the address explicitly
|
||||
present in breakpoint table. Say, we've set breakpoint
|
||||
at file:line. There were several PC values for that file:line,
|
||||
due to optimization, all in one block.
|
||||
|
||||
We've picked one PC value. If "clear" is issued with another
|
||||
PC corresponding to the same file:line, the breakpoint won't
|
||||
be cleared. We probably can still clear the breakpoint, but
|
||||
be cleared. We probably can still clear the breakpoint, but
|
||||
since the other PC value is never presented to user, user
|
||||
can only find it by guessing, and it does not seem important
|
||||
to support that. */
|
||||
@@ -11489,7 +11489,7 @@ update_global_location_list (enum ugll_insert_mode insert_mode)
|
||||
if there's another location at the same address (previously
|
||||
marked as duplicate), we don't need to remove/insert the
|
||||
location.
|
||||
|
||||
|
||||
LOCP is kept in sync with OLD_LOCP, each pointing to the current
|
||||
and former bp_location array state respectively. */
|
||||
|
||||
@@ -11612,7 +11612,7 @@ update_global_location_list (enum ugll_insert_mode insert_mode)
|
||||
this location on the global list, and try to
|
||||
remove it next time, but there's no particular
|
||||
reason why we will succeed next time.
|
||||
|
||||
|
||||
Note that at this point, old_loc->owner is still
|
||||
valid, as delete_breakpoint frees the breakpoint
|
||||
only after calling us. */
|
||||
@@ -13478,7 +13478,7 @@ find_location_by_number (int bp_num, int loc_num)
|
||||
|
||||
if (!b || b->number != bp_num)
|
||||
error (_("Bad breakpoint number '%d'"), bp_num);
|
||||
|
||||
|
||||
if (loc_num == 0)
|
||||
error (_("Bad breakpoint location number '%d'"), loc_num);
|
||||
|
||||
@@ -13820,8 +13820,8 @@ enable_breakpoint_disp (struct breakpoint *bpt, enum bpdisp disposition,
|
||||
{
|
||||
int i;
|
||||
i = hw_breakpoint_used_count ();
|
||||
target_resources_ok =
|
||||
target_can_use_hardware_watchpoint (bp_hardware_breakpoint,
|
||||
target_resources_ok =
|
||||
target_can_use_hardware_watchpoint (bp_hardware_breakpoint,
|
||||
i + 1, 0);
|
||||
if (target_resources_ok == 0)
|
||||
error (_("No hardware breakpoint support in the target."));
|
||||
@@ -14167,7 +14167,7 @@ read_uploaded_action (std::string &buffer)
|
||||
equivalent GDB tracepoint. This is not a reliable process, since
|
||||
the target does not necessarily have all the information used when
|
||||
the tracepoint was originally defined. */
|
||||
|
||||
|
||||
struct tracepoint *
|
||||
create_tracepoint_from_upload (struct uploaded_tp *utp)
|
||||
{
|
||||
@@ -14259,7 +14259,7 @@ create_tracepoint_from_upload (struct uploaded_tp *utp)
|
||||
|
||||
return tp;
|
||||
}
|
||||
|
||||
|
||||
/* Print information on tracepoint number TPNUM_EXP, or all if
|
||||
omitted. */
|
||||
|
||||
@@ -14310,7 +14310,7 @@ delete_trace_command (const char *arg, int from_tty)
|
||||
|
||||
/* Delete all tracepoints if no argument.
|
||||
Do not delete internal or call-dummy breakpoints, these
|
||||
have to be deleted with an explicit breakpoint number
|
||||
have to be deleted with an explicit breakpoint number
|
||||
argument. */
|
||||
for (breakpoint &tp : all_tracepoints ())
|
||||
if (is_tracepoint (&tp) && user_breakpoint_p (&tp))
|
||||
@@ -14449,7 +14449,7 @@ get_tracepoint_by_number (const char **arg,
|
||||
if (tpnum <= 0)
|
||||
{
|
||||
if (instring && *instring)
|
||||
gdb_printf (_("bad tracepoint number at or near '%s'\n"),
|
||||
gdb_printf (_("bad tracepoint number at or near '%s'\n"),
|
||||
instring);
|
||||
else
|
||||
gdb_printf (_("No previous tracepoint\n"));
|
||||
|
||||
@@ -154,7 +154,7 @@ enum bptype
|
||||
dynamic libraries. */
|
||||
bp_shlib_event,
|
||||
|
||||
/* Some multi-threaded systems can arrange for a location in the
|
||||
/* Some multi-threaded systems can arrange for a location in the
|
||||
inferior to be executed when certain thread-related events occur
|
||||
(such as thread creation or thread death).
|
||||
|
||||
@@ -167,10 +167,10 @@ enum bptype
|
||||
/* On the same principal, an overlay manager can arrange to call a
|
||||
magic location in the inferior whenever there is an interesting
|
||||
change in overlay status. GDB can update its overlay tables
|
||||
and fiddle with breakpoints in overlays when this breakpoint
|
||||
and fiddle with breakpoints in overlays when this breakpoint
|
||||
is hit. */
|
||||
|
||||
bp_overlay_event,
|
||||
bp_overlay_event,
|
||||
|
||||
/* Master copies of longjmp breakpoints. These are always installed
|
||||
as soon as an objfile containing longjmp is loaded, but they are
|
||||
@@ -241,7 +241,7 @@ enum enable_state
|
||||
enum bpdisp
|
||||
{
|
||||
disp_del, /* Delete it */
|
||||
disp_del_at_next_stop, /* Delete at next stop,
|
||||
disp_del_at_next_stop, /* Delete at next stop,
|
||||
whether hit or not */
|
||||
disp_disable, /* Disable it */
|
||||
disp_donttouch /* Leave it alone */
|
||||
@@ -393,7 +393,7 @@ public:
|
||||
|
||||
/* Is this particular location enabled. */
|
||||
bool enabled = false;
|
||||
|
||||
|
||||
/* Is this particular location disabled because the condition
|
||||
expression is invalid at this location. For a location to be
|
||||
reported as enabled, the ENABLED field above has to be true *and*
|
||||
@@ -602,7 +602,7 @@ enum watchpoint_triggered
|
||||
watch_triggered_unknown,
|
||||
|
||||
/* This hardware watchpoint definitely did trigger. */
|
||||
watch_triggered_yes
|
||||
watch_triggered_yes
|
||||
};
|
||||
|
||||
/* Some targets (e.g., embedded PowerPC) need two debug registers to set
|
||||
@@ -1805,7 +1805,7 @@ extern void disable_breakpoint (struct breakpoint *);
|
||||
|
||||
extern void enable_breakpoint (struct breakpoint *);
|
||||
|
||||
extern void breakpoint_set_commands (struct breakpoint *b,
|
||||
extern void breakpoint_set_commands (struct breakpoint *b,
|
||||
counted_command_line &&commands);
|
||||
|
||||
extern void breakpoint_set_silent (struct breakpoint *b, int silent);
|
||||
|
||||
@@ -381,7 +381,7 @@ bsd_kvm_add_target (int (*supply_pcb)(struct regcache *, struct pcb *))
|
||||
bsd_kvm_supply_pcb = supply_pcb;
|
||||
|
||||
add_target (bsd_kvm_target_info, bsd_kvm_target_open);
|
||||
|
||||
|
||||
add_prefix_cmd ("kvm", class_obscure, bsd_kvm_cmd, _("\
|
||||
Generic command for manipulating the kernel memory interface."),
|
||||
&bsd_kvm_cmdlist, 0, &cmdlist);
|
||||
|
||||
@@ -323,7 +323,7 @@ buildsym_compunit::finish_block_internal
|
||||
|
||||
opblock = NULL;
|
||||
for (pblock = m_pending_blocks;
|
||||
pblock && pblock != old_blocks;
|
||||
pblock && pblock != old_blocks;
|
||||
pblock = pblock->next)
|
||||
{
|
||||
if (pblock->block->superblock () == NULL)
|
||||
|
||||
@@ -311,7 +311,7 @@ c_get_string (struct value *value, gdb::unique_xmalloc_ptr<gdb_byte> *buffer,
|
||||
if (extract_unsigned_integer (contents + i * width,
|
||||
width, byte_order) == 0)
|
||||
break;
|
||||
|
||||
|
||||
/* I is now either a user-defined length, the number of non-null
|
||||
characters, or FETCHLIMIT. */
|
||||
*length = i * width;
|
||||
@@ -366,7 +366,7 @@ c_get_string (struct value *value, gdb::unique_xmalloc_ptr<gdb_byte> *buffer,
|
||||
&& extract_unsigned_integer (buffer->get () + *length - width,
|
||||
width, byte_order) == 0)
|
||||
*length -= width;
|
||||
|
||||
|
||||
/* The read_string function will return the number of bytes read.
|
||||
If length returned from read_string was > 0, return the number of
|
||||
characters read by dividing the number of bytes by width. */
|
||||
|
||||
@@ -337,7 +337,7 @@ cp_type_print_method_args (struct type *mtype, const char *prefix,
|
||||
On outermost call, SHOW > 0 means should ignore
|
||||
any typename for TYPE and show its details.
|
||||
SHOW is always zero on recursive calls.
|
||||
|
||||
|
||||
NEED_POST_SPACE is non-zero when a space will be be needed
|
||||
between a trailing qualifier and a field, variable, or function
|
||||
name. */
|
||||
@@ -743,7 +743,7 @@ c_type_print_varspec_suffix (struct type *type,
|
||||
|| type->bounds ()->high.kind () == PROP_LOCLIST)
|
||||
gdb_printf (stream, "variable length");
|
||||
else if (get_array_bounds (type, &low_bound, &high_bound))
|
||||
gdb_printf (stream, "%s",
|
||||
gdb_printf (stream, "%s",
|
||||
plongest (high_bound - low_bound + 1));
|
||||
gdb_printf (stream, (is_vector ? ")))" : "]"));
|
||||
|
||||
@@ -1404,7 +1404,7 @@ c_type_print_base_1 (struct type *type, struct ui_file *stream,
|
||||
if (type->is_declared_class ())
|
||||
gdb_printf (stream, "class ");
|
||||
/* Print the tag name if it exists.
|
||||
The aCC compiler emits a spurious
|
||||
The aCC compiler emits a spurious
|
||||
"{unnamed struct}"/"{unnamed union}"/"{unnamed enum}"
|
||||
tag for unnamed struct/union/enum's, which we don't
|
||||
want to print. */
|
||||
|
||||
@@ -468,7 +468,7 @@ c_value_print_inner (struct value *val, struct ui_file *stream, int recurse,
|
||||
|
||||
|
||||
void
|
||||
c_value_print (struct value *val, struct ui_file *stream,
|
||||
c_value_print (struct value *val, struct ui_file *stream,
|
||||
const struct value_print_options *options)
|
||||
{
|
||||
struct type *type, *real_type;
|
||||
@@ -563,7 +563,7 @@ c_value_print (struct value *val, struct ui_file *stream,
|
||||
if (real_type)
|
||||
{
|
||||
/* We have RTTI information, so use it. */
|
||||
val = value_full_object (val, real_type,
|
||||
val = value_full_object (val, real_type,
|
||||
full, top, using_enc);
|
||||
/* In a destructor we might see a real type that is a
|
||||
superclass of the object's type. In this case it is
|
||||
|
||||
@@ -72,7 +72,7 @@ adjust_value_for_child_access (struct value **value,
|
||||
*was_ptr = 0;
|
||||
|
||||
*type = check_typedef (*type);
|
||||
|
||||
|
||||
/* The type of value stored in varobj, that is passed
|
||||
to us, is already supposed to be
|
||||
reference-stripped. */
|
||||
@@ -211,7 +211,7 @@ c_number_of_children (const struct varobj *var)
|
||||
|
||||
We can show char* so we allow it to be dereferenced. If you decide
|
||||
to test for it, please mind that a little magic is necessary to
|
||||
properly identify it: char* has TYPE_CODE == TYPE_CODE_INT and
|
||||
properly identify it: char* has TYPE_CODE == TYPE_CODE_INT and
|
||||
TYPE_NAME == "char". */
|
||||
if (target->code () == TYPE_CODE_FUNC
|
||||
|| target->code () == TYPE_CODE_VOID)
|
||||
@@ -277,7 +277,7 @@ value_struct_element_index (struct value *value, int type_index)
|
||||
information cannot be determined, set *CNAME, *CVALUE, or *CTYPE
|
||||
to empty. */
|
||||
|
||||
static void
|
||||
static void
|
||||
c_describe_child (const struct varobj *parent, int index,
|
||||
std::string *cname, struct value **cvalue,
|
||||
struct type **ctype, std::string *cfull_expression)
|
||||
@@ -432,7 +432,7 @@ c_path_expr_of_child (const struct varobj *child)
|
||||
{
|
||||
std::string path_expr;
|
||||
|
||||
c_describe_child (child->parent, child->index, NULL, NULL, NULL,
|
||||
c_describe_child (child->parent, child->index, NULL, NULL, NULL,
|
||||
&path_expr);
|
||||
return path_expr;
|
||||
}
|
||||
@@ -513,7 +513,7 @@ c_value_of_variable (const struct varobj *var,
|
||||
|
||||
gdb_assert (varobj_value_is_changeable_p (var));
|
||||
gdb_assert (!var->value->lazy ());
|
||||
|
||||
|
||||
/* If the specified format is the current one,
|
||||
we can reuse print_value. */
|
||||
if (format == var->format)
|
||||
@@ -795,7 +795,7 @@ cplus_describe_child (const struct varobj *parent, int index,
|
||||
const char *ptr = was_ptr ? "*" : "";
|
||||
|
||||
/* Cast the parent to the base' type. Note that in gdb,
|
||||
expression like
|
||||
expression like
|
||||
(Base1)d
|
||||
will create an lvalue, for all appearances, so we don't
|
||||
need to use more fancy:
|
||||
@@ -834,7 +834,7 @@ cplus_describe_child (const struct varobj *parent, int index,
|
||||
access = "public";
|
||||
else if (children[v_private] > 0)
|
||||
access = "private";
|
||||
else
|
||||
else
|
||||
access = "protected";
|
||||
break;
|
||||
case 1:
|
||||
@@ -867,7 +867,7 @@ cplus_describe_child (const struct varobj *parent, int index,
|
||||
else
|
||||
{
|
||||
c_describe_child (parent, index, cname, cvalue, ctype, cfull_expression);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static std::string
|
||||
@@ -884,7 +884,7 @@ cplus_path_expr_of_child (const struct varobj *child)
|
||||
{
|
||||
std::string path_expr;
|
||||
|
||||
cplus_describe_child (child->parent, child->index, NULL, NULL, NULL,
|
||||
cplus_describe_child (child->parent, child->index, NULL, NULL, NULL,
|
||||
&path_expr);
|
||||
return path_expr;
|
||||
}
|
||||
|
||||
@@ -22,9 +22,9 @@
|
||||
|
||||
/* Note that the first entry must always be "auto".
|
||||
The remaining entries were created by running this script:
|
||||
|
||||
|
||||
iconv -l | sed -e '/[/]...*$/d' -e 's@^\(.*\)//$@"\1", \\@'
|
||||
|
||||
|
||||
.. and then removing the final backslash. It would be nice to
|
||||
separate narrow and wide character sets, but there is no good way
|
||||
to do that. */
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
conversions),
|
||||
|
||||
and so on.
|
||||
|
||||
|
||||
To avoid excessive code duplication and maintenance efforts,
|
||||
GDB simply requires a capable iconv function. Users on platforms
|
||||
without a suitable iconv can use the GNU iconv library. */
|
||||
@@ -80,7 +80,7 @@
|
||||
#else
|
||||
# define GDB_DEFAULT_HOST_CHARSET "ISO-8859-1"
|
||||
#endif
|
||||
#define GDB_DEFAULT_TARGET_CHARSET GDB_DEFAULT_HOST_CHARSET
|
||||
#define GDB_DEFAULT_TARGET_CHARSET GDB_DEFAULT_HOST_CHARSET
|
||||
#define GDB_DEFAULT_TARGET_WIDE_CHARSET "UTF-32"
|
||||
#undef DEFAULT_CHARSET_NAMES
|
||||
#define DEFAULT_CHARSET_NAMES GDB_DEFAULT_HOST_CHARSET ,
|
||||
@@ -255,9 +255,9 @@ show_target_charset_name (struct ui_file *file, int from_tty,
|
||||
|
||||
static const char *target_wide_charset_name = "auto";
|
||||
static void
|
||||
show_target_wide_charset_name (struct ui_file *file,
|
||||
show_target_wide_charset_name (struct ui_file *file,
|
||||
int from_tty,
|
||||
struct cmd_list_element *c,
|
||||
struct cmd_list_element *c,
|
||||
const char *value)
|
||||
{
|
||||
if (!strcmp (value, "auto"))
|
||||
@@ -363,7 +363,7 @@ validate (struct gdbarch *gdbarch)
|
||||
|
||||
/* This is the sfunc for the 'set charset' command. */
|
||||
static void
|
||||
set_charset_sfunc (const char *charset, int from_tty,
|
||||
set_charset_sfunc (const char *charset, int from_tty,
|
||||
struct cmd_list_element *c)
|
||||
{
|
||||
/* CAREFUL: set the target charset here as well. */
|
||||
@@ -398,13 +398,13 @@ set_target_wide_charset_sfunc (const char *charset, int from_tty,
|
||||
|
||||
/* sfunc for the 'show charset' command. */
|
||||
static void
|
||||
show_charset (struct ui_file *file, int from_tty,
|
||||
show_charset (struct ui_file *file, int from_tty,
|
||||
struct cmd_list_element *c,
|
||||
const char *name)
|
||||
{
|
||||
show_host_charset_name (file, from_tty, c, host_charset_name);
|
||||
show_target_charset_name (file, from_tty, c, target_charset_name);
|
||||
show_target_wide_charset_name (file, from_tty, c,
|
||||
show_target_wide_charset_name (file, from_tty, c,
|
||||
target_wide_charset_name);
|
||||
}
|
||||
|
||||
@@ -585,7 +585,7 @@ convert_between_encodings (const char *from, const char *to,
|
||||
|
||||
|
||||
/* Create a new iterator. */
|
||||
wchar_iterator::wchar_iterator (const gdb_byte *input, size_t bytes,
|
||||
wchar_iterator::wchar_iterator (const gdb_byte *input, size_t bytes,
|
||||
const char *charset, size_t width)
|
||||
: m_input (input),
|
||||
m_bytes (bytes),
|
||||
@@ -638,7 +638,7 @@ wchar_iterator::iterate (enum wchar_iterate_result *out_result,
|
||||
converted a character; if so, return it. */
|
||||
if (out_avail < out_request * sizeof (gdb_wchar_t))
|
||||
break;
|
||||
|
||||
|
||||
/* Otherwise skip the first invalid character, and let
|
||||
the caller know about it. */
|
||||
*out_result = wchar_iterate_invalid;
|
||||
|
||||
@@ -101,7 +101,7 @@ class wchar_iterator
|
||||
~wchar_iterator ();
|
||||
|
||||
/* Perform a single iteration of a wchar_t iterator.
|
||||
|
||||
|
||||
Returns the number of characters converted. A negative result
|
||||
means that EOF has been reached. A positive result indicates the
|
||||
number of valid wchar_ts in the result; *OUT_CHARS is updated to
|
||||
@@ -120,7 +120,7 @@ class wchar_iterator
|
||||
|
||||
wchar_iterate_incomplete means that an incomplete character was
|
||||
seen at the end of the input sequence.
|
||||
|
||||
|
||||
wchar_iterate_eof means that all bytes were successfully
|
||||
converted. The other output arguments are not set. */
|
||||
int iterate (enum wchar_iterate_result *out_result, gdb_wchar_t **out_chars,
|
||||
|
||||
@@ -188,7 +188,7 @@ cmd_list_element::command_components () const
|
||||
|
||||
Add this command to command list *LIST.
|
||||
|
||||
Returns a pointer to the added command (not necessarily the head
|
||||
Returns a pointer to the added command (not necessarily the head
|
||||
of *LIST). */
|
||||
|
||||
static struct cmd_list_element *
|
||||
@@ -2526,23 +2526,23 @@ lookup_cmd_exact (const char *name,
|
||||
deprecated and a warning message should be generated. This
|
||||
function decodes TEXT and potentially generates a warning message
|
||||
as outlined below.
|
||||
|
||||
|
||||
Example for 'set endian big' which has a fictitious alias 'seb'.
|
||||
|
||||
|
||||
If alias wasn't used in TEXT, and the command is deprecated:
|
||||
"warning: 'set endian big' is deprecated."
|
||||
|
||||
"warning: 'set endian big' is deprecated."
|
||||
|
||||
If alias was used, and only the alias is deprecated:
|
||||
"warning: 'seb' an alias for the command 'set endian big' is deprecated."
|
||||
|
||||
|
||||
If alias was used and command is deprecated (regardless of whether
|
||||
the alias itself is deprecated:
|
||||
|
||||
|
||||
"warning: 'set endian big' (seb) is deprecated."
|
||||
|
||||
After the message has been sent, clear the appropriate flags in the
|
||||
command and/or the alias so the user is no longer bothered.
|
||||
|
||||
|
||||
*/
|
||||
void
|
||||
deprecated_cmd_warning (const char *text, struct cmd_list_element *list)
|
||||
|
||||
@@ -128,7 +128,7 @@ static struct cmd_list_element *binary_dump_cmdlist;
|
||||
static struct cmd_list_element *binary_append_cmdlist;
|
||||
|
||||
static void
|
||||
dump_binary_file (const char *filename, const char *mode,
|
||||
dump_binary_file (const char *filename, const char *mode,
|
||||
const bfd_byte *buf, ULONGEST len)
|
||||
{
|
||||
int status;
|
||||
@@ -143,8 +143,8 @@ dump_binary_file (const char *filename, const char *mode,
|
||||
}
|
||||
|
||||
static void
|
||||
dump_bfd_file (const char *filename, const char *mode,
|
||||
const char *target, CORE_ADDR vaddr,
|
||||
dump_bfd_file (const char *filename, const char *mode,
|
||||
const char *target, CORE_ADDR vaddr,
|
||||
const bfd_byte *buf, ULONGEST len)
|
||||
{
|
||||
asection *osection;
|
||||
@@ -192,7 +192,7 @@ dump_memory_to_file (const char *cmd, const char *mode, const char *file_format)
|
||||
value. */
|
||||
gdb::byte_vector buf (count);
|
||||
read_memory (lo, buf.data (), count);
|
||||
|
||||
|
||||
/* Have everything. Open/write the data. */
|
||||
if (file_format == NULL || strcmp (file_format, "binary") == 0)
|
||||
dump_binary_file (filename.get (), mode, buf.data (), count);
|
||||
@@ -240,7 +240,7 @@ dump_value_to_file (const char *cmd, const char *mode, const char *file_format)
|
||||
}
|
||||
|
||||
dump_bfd_file (filename.get (), mode, file_format, vaddr,
|
||||
val->contents ().data (),
|
||||
val->contents ().data (),
|
||||
val->type ()->length ());
|
||||
}
|
||||
}
|
||||
@@ -364,10 +364,10 @@ add_dump_command (const char *name,
|
||||
|
||||
/* Replace "Dump " at start of docstring with "Append " (borrowed
|
||||
from [deleted] deprecated_add_show_from_set). */
|
||||
if ( c->doc[0] == 'W'
|
||||
&& c->doc[1] == 'r'
|
||||
if ( c->doc[0] == 'W'
|
||||
&& c->doc[1] == 'r'
|
||||
&& c->doc[2] == 'i'
|
||||
&& c->doc[3] == 't'
|
||||
&& c->doc[3] == 't'
|
||||
&& c->doc[4] == 'e'
|
||||
&& c->doc[5] == ' ')
|
||||
c->doc = concat ("Append ", c->doc + 6, (char *)NULL);
|
||||
@@ -397,7 +397,7 @@ restore_one_section (bfd *ibfd, asection *isec,
|
||||
|| (load_end > 0 && sec_start >= load_end))
|
||||
{
|
||||
/* No, no usable data in this section. */
|
||||
gdb_printf (_("skipping section %s...\n"),
|
||||
gdb_printf (_("skipping section %s...\n"),
|
||||
bfd_section_name (isec));
|
||||
return;
|
||||
}
|
||||
@@ -415,12 +415,12 @@ restore_one_section (bfd *ibfd, asection *isec,
|
||||
/* Get the data. */
|
||||
gdb::byte_vector buf (size);
|
||||
if (!bfd_get_section_contents (ibfd, isec, buf.data (), 0, size))
|
||||
error (_("Failed to read bfd file %s: '%s'."), bfd_get_filename (ibfd),
|
||||
error (_("Failed to read bfd file %s: '%s'."), bfd_get_filename (ibfd),
|
||||
bfd_errmsg (bfd_get_error ()));
|
||||
|
||||
gdb_printf ("Restoring section %s (0x%lx to 0x%lx)",
|
||||
bfd_section_name (isec),
|
||||
(unsigned long) sec_start,
|
||||
bfd_section_name (isec),
|
||||
(unsigned long) sec_start,
|
||||
(unsigned long) sec_end);
|
||||
|
||||
if (load_offset != 0 || load_start != 0 || load_end != 0)
|
||||
@@ -463,7 +463,7 @@ restore_binary_file (const char *filename, CORE_ADDR load_offset,
|
||||
perror_with_name (filename);
|
||||
|
||||
if (len <= load_start)
|
||||
error (_("Start address is greater than length of binary file %s."),
|
||||
error (_("Start address is greater than length of binary file %s."),
|
||||
filename);
|
||||
|
||||
/* Chop off "len" if it exceeds the requested load_end addr. */
|
||||
@@ -473,9 +473,9 @@ restore_binary_file (const char *filename, CORE_ADDR load_offset,
|
||||
if (load_start > 0)
|
||||
len -= load_start;
|
||||
|
||||
gdb_printf
|
||||
("Restoring binary file %s into memory (0x%lx to 0x%lx)\n",
|
||||
filename,
|
||||
gdb_printf
|
||||
("Restoring binary file %s into memory (0x%lx to 0x%lx)\n",
|
||||
filename,
|
||||
(unsigned long) (load_start + load_offset),
|
||||
(unsigned long) (load_start + load_offset + len));
|
||||
|
||||
@@ -591,13 +591,13 @@ the specified FILE in raw target ordered bytes.");
|
||||
add_basic_prefix_cmd ("srec", all_commands,
|
||||
_("Write target code/data to an srec file."),
|
||||
&srec_cmdlist,
|
||||
0 /*allow-unknown*/,
|
||||
0 /*allow-unknown*/,
|
||||
&dump_cmdlist);
|
||||
|
||||
add_basic_prefix_cmd ("ihex", all_commands,
|
||||
_("Write target code/data to an intel hex file."),
|
||||
&ihex_cmdlist,
|
||||
0 /*allow-unknown*/,
|
||||
0 /*allow-unknown*/,
|
||||
&dump_cmdlist);
|
||||
|
||||
add_basic_prefix_cmd ("verilog", all_commands,
|
||||
@@ -609,19 +609,19 @@ the specified FILE in raw target ordered bytes.");
|
||||
add_basic_prefix_cmd ("tekhex", all_commands,
|
||||
_("Write target code/data to a tekhex file."),
|
||||
&tekhex_cmdlist,
|
||||
0 /*allow-unknown*/,
|
||||
0 /*allow-unknown*/,
|
||||
&dump_cmdlist);
|
||||
|
||||
add_basic_prefix_cmd ("binary", all_commands,
|
||||
_("Write target code/data to a raw binary file."),
|
||||
&binary_dump_cmdlist,
|
||||
0 /*allow-unknown*/,
|
||||
0 /*allow-unknown*/,
|
||||
&dump_cmdlist);
|
||||
|
||||
add_basic_prefix_cmd ("binary", all_commands,
|
||||
_("Append target code/data to a raw binary file."),
|
||||
&binary_append_cmdlist,
|
||||
0 /*allow-unknown*/,
|
||||
0 /*allow-unknown*/,
|
||||
&append_cmdlist);
|
||||
|
||||
add_cmd ("memory", all_commands, dump_srec_memory, _("\
|
||||
|
||||
@@ -167,7 +167,7 @@ set_logging_on (const char *args, int from_tty)
|
||||
handle_redirections (from_tty);
|
||||
}
|
||||
|
||||
static void
|
||||
static void
|
||||
set_logging_off (const char *args, int from_tty)
|
||||
{
|
||||
if (saved_filename.empty ())
|
||||
|
||||
@@ -931,7 +931,7 @@ line_first_arg (const char *p)
|
||||
{
|
||||
const char *first_arg = p + find_command_name_length (p);
|
||||
|
||||
return skip_spaces (first_arg);
|
||||
return skip_spaces (first_arg);
|
||||
}
|
||||
|
||||
/* Process one input line. If the command is an "end", return such an
|
||||
@@ -1383,7 +1383,7 @@ do_define_command (const char *comname, int from_tty,
|
||||
const char *comfull;
|
||||
int hook_type = CMD_NO_HOOK;
|
||||
int hook_name_size = 0;
|
||||
|
||||
|
||||
#define HOOK_STRING "hook-"
|
||||
#define HOOK_LEN 5
|
||||
#define HOOK_POST_STRING "hookpost-"
|
||||
|
||||
@@ -334,12 +334,12 @@ number_or_range_parser::finished () const
|
||||
&& (c_isdigit (m_cur_tok[1]) || m_cur_tok[1] == '$'))));
|
||||
}
|
||||
|
||||
/* Accept a number and a string-form list of numbers such as is
|
||||
/* Accept a number and a string-form list of numbers such as is
|
||||
accepted by get_number_or_range. Return TRUE if the number is
|
||||
in the list.
|
||||
|
||||
By definition, an empty list includes all numbers. This is to
|
||||
be interpreted as typing a command such as "delete break" with
|
||||
By definition, an empty list includes all numbers. This is to
|
||||
be interpreted as typing a command such as "delete break" with
|
||||
no arguments. */
|
||||
|
||||
int
|
||||
|
||||
@@ -145,12 +145,12 @@ private:
|
||||
bool m_in_range;
|
||||
};
|
||||
|
||||
/* Accept a number and a string-form list of numbers such as is
|
||||
/* Accept a number and a string-form list of numbers such as is
|
||||
accepted by get_number_or_range. Return TRUE if the number is
|
||||
in the list.
|
||||
|
||||
By definition, an empty list includes all numbers. This is to
|
||||
be interpreted as typing a command such as "delete break" with
|
||||
By definition, an empty list includes all numbers. This is to
|
||||
be interpreted as typing a command such as "delete break" with
|
||||
no arguments. */
|
||||
|
||||
extern int number_is_in_list (const char *list, int number);
|
||||
|
||||
@@ -405,7 +405,7 @@ cs_section_address (struct coff_symbol *cs, bfd *abfd)
|
||||
|
||||
/* Look up a coff type-number index. Return the address of the slot
|
||||
where the type for that index is stored.
|
||||
The type-number is in INDEX.
|
||||
The type-number is in INDEX.
|
||||
|
||||
This can be used for finding the type associated with that index
|
||||
or for associating a new type with the index. */
|
||||
@@ -537,7 +537,7 @@ is_import_fixup_symbol (struct coff_symbol *cs,
|
||||
static struct minimal_symbol *
|
||||
record_minimal_symbol (minimal_symbol_reader &reader,
|
||||
struct coff_symbol *cs, unrelocated_addr address,
|
||||
enum minimal_symbol_type type, int section,
|
||||
enum minimal_symbol_type type, int section,
|
||||
struct objfile *objfile)
|
||||
{
|
||||
/* We don't want TDESC entry points in the minimal symbol table. */
|
||||
@@ -706,7 +706,7 @@ coff_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
|
||||
file_ptr symtab_offset;
|
||||
file_ptr stringtab_offset;
|
||||
unsigned int stabstrsize;
|
||||
|
||||
|
||||
info = coff_objfile_data_key.get (objfile);
|
||||
symfile_bfd = abfd; /* Kludge for swap routines. */
|
||||
|
||||
@@ -1141,7 +1141,7 @@ coff_symtab_read (minimal_symbol_reader &reader,
|
||||
newobj = push_context (depth, fcn_start_addr);
|
||||
fcn_cs_saved.c_name = getsymname (&fcn_sym_saved);
|
||||
newobj->name =
|
||||
process_coff_symbol (&fcn_cs_saved,
|
||||
process_coff_symbol (&fcn_cs_saved,
|
||||
&fcn_aux_saved, objfile);
|
||||
}
|
||||
else if (strcmp (cs->c_name, ".ef") == 0)
|
||||
@@ -1732,7 +1732,7 @@ process_coff_symbol (struct coff_symbol *cs,
|
||||
/* If we are giving a name to a type such as
|
||||
"pointer to foo" or "function returning foo", we
|
||||
better not set the TYPE_NAME. If the program
|
||||
contains "typedef char *caddr_t;", we don't want
|
||||
contains "typedef char *caddr_t;", we don't want
|
||||
all variables of type char * to print as caddr_t.
|
||||
This is not just a consequence of GDB's type
|
||||
management; CC and GCC (at least through version
|
||||
@@ -1879,9 +1879,9 @@ decode_type (struct coff_symbol *cs, unsigned int c_type,
|
||||
return the type that the function returns. */
|
||||
|
||||
static struct type *
|
||||
decode_function_type (struct coff_symbol *cs,
|
||||
decode_function_type (struct coff_symbol *cs,
|
||||
unsigned int c_type,
|
||||
union internal_auxent *aux,
|
||||
union internal_auxent *aux,
|
||||
struct objfile *objfile)
|
||||
{
|
||||
if (aux->x_sym.x_tagndx.u32 == 0)
|
||||
@@ -1894,9 +1894,9 @@ decode_function_type (struct coff_symbol *cs,
|
||||
/* Basic C types. */
|
||||
|
||||
static struct type *
|
||||
decode_base_type (struct coff_symbol *cs,
|
||||
decode_base_type (struct coff_symbol *cs,
|
||||
unsigned int c_type,
|
||||
union internal_auxent *aux,
|
||||
union internal_auxent *aux,
|
||||
struct objfile *objfile)
|
||||
{
|
||||
struct gdbarch *gdbarch = objfile->arch ();
|
||||
|
||||
@@ -484,7 +484,7 @@ get_out_value_type (struct symbol *func_sym, struct objfile *objfile,
|
||||
"in compiled module \"%s\"."),
|
||||
gdb_type_from_ptr->code (), COMPILE_I_EXPR_VAL,
|
||||
objfile_name (objfile));
|
||||
|
||||
|
||||
retval = gdb_type_from_ptr;
|
||||
switch (gdb_type_from_ptr->code ())
|
||||
{
|
||||
|
||||
@@ -182,7 +182,7 @@ test_complaints ()
|
||||
|
||||
INIT_GDB_FILE (complaints)
|
||||
{
|
||||
add_setshow_zinteger_cmd ("complaints", class_support,
|
||||
add_setshow_zinteger_cmd ("complaints", class_support,
|
||||
&stop_whining, _("\
|
||||
Set max number of complaints about incorrect symbols."), _("\
|
||||
Show max number of complaints about incorrect symbols."), NULL,
|
||||
|
||||
@@ -160,7 +160,7 @@ enum explicit_location_match_type
|
||||
will quote it. That's why we switch between
|
||||
current_language->word_break_characters () and
|
||||
gdb_completer_command_word_break_characters. I'm not sure when
|
||||
we need this behavior (perhaps for funky characters in C++
|
||||
we need this behavior (perhaps for funky characters in C++
|
||||
symbols?). */
|
||||
|
||||
/* Variables which are necessary for fancy command line editing. */
|
||||
@@ -212,7 +212,7 @@ static const char gdb_completer_file_name_quote_characters[] = "'\"";
|
||||
symbols but don't want to complete on anything else either. */
|
||||
|
||||
void
|
||||
noop_completer (struct cmd_list_element *ignore,
|
||||
noop_completer (struct cmd_list_element *ignore,
|
||||
completion_tracker &tracker,
|
||||
const char *text, const char *prefix)
|
||||
{
|
||||
@@ -2164,7 +2164,7 @@ complete_line (completion_tracker &tracker,
|
||||
/* Complete on command names. Used by "help". */
|
||||
|
||||
void
|
||||
command_completer (struct cmd_list_element *ignore,
|
||||
command_completer (struct cmd_list_element *ignore,
|
||||
completion_tracker &tracker,
|
||||
const char *text, const char *word)
|
||||
{
|
||||
|
||||
@@ -762,7 +762,7 @@ END {
|
||||
print "bugs/oks: " bugs "/" oks
|
||||
print bugs "/ (" oks "+" legacy "+" deprecated ")"
|
||||
}
|
||||
# This value should be as low as possible
|
||||
# This value should be as low as possible
|
||||
print bugs / ( oks + legacy + deprecated )
|
||||
}
|
||||
' ${wwwdir}/ari.doc`
|
||||
|
||||
@@ -22,7 +22,7 @@ NR == 1,/^[ ]*15\. Disclaimer of Warranty\.[ ]*$/ {
|
||||
{
|
||||
printf " gdb_printf (\"\\n\");\n";
|
||||
}
|
||||
else if ($0 !~ /^[ ]*15\. Disclaimer of Warranty\.[ ]*$/)
|
||||
else if ($0 !~ /^[ ]*15\. Disclaimer of Warranty\.[ ]*$/)
|
||||
{
|
||||
printf " gdb_printf (\"";
|
||||
for (i = 1; i < NF; i++)
|
||||
@@ -37,8 +37,8 @@ NR == 1,/^[ ]*15\. Disclaimer of Warranty\.[ ]*$/ {
|
||||
print "show_warranty_command (const char *ignore, int from_tty)";
|
||||
print "{";
|
||||
}
|
||||
/^[ ]*15\. Disclaimer of Warranty\.[ ]*$/, /^[ ]*END OF TERMS AND CONDITIONS[ ]*$/{
|
||||
if (! ($0 ~ /^[ ]*END OF TERMS AND CONDITIONS[ ]*$/))
|
||||
/^[ ]*15\. Disclaimer of Warranty\.[ ]*$/, /^[ ]*END OF TERMS AND CONDITIONS[ ]*$/{
|
||||
if (! ($0 ~ /^[ ]*END OF TERMS AND CONDITIONS[ ]*$/))
|
||||
{
|
||||
printf " gdb_printf (\"";
|
||||
for (i = 1; i < NF; i++)
|
||||
|
||||
@@ -190,7 +190,7 @@ read_code (CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
|
||||
if successful. */
|
||||
|
||||
int
|
||||
safe_read_memory_integer (CORE_ADDR memaddr, int len,
|
||||
safe_read_memory_integer (CORE_ADDR memaddr, int len,
|
||||
enum bfd_endian byte_order,
|
||||
LONGEST *return_value)
|
||||
{
|
||||
@@ -273,7 +273,7 @@ read_memory_typed_address (CORE_ADDR addr, struct type *type)
|
||||
/* See gdbcore.h. */
|
||||
|
||||
void
|
||||
write_memory (CORE_ADDR memaddr,
|
||||
write_memory (CORE_ADDR memaddr,
|
||||
const bfd_byte *myaddr, ssize_t len)
|
||||
{
|
||||
int status;
|
||||
@@ -306,7 +306,7 @@ write_memory_with_notification (CORE_ADDR memaddr, const bfd_byte *myaddr,
|
||||
/* Store VALUE at ADDR in the inferior as a LEN-byte unsigned
|
||||
integer. */
|
||||
void
|
||||
write_memory_unsigned_integer (CORE_ADDR addr, int len,
|
||||
write_memory_unsigned_integer (CORE_ADDR addr, int len,
|
||||
enum bfd_endian byte_order,
|
||||
ULONGEST value)
|
||||
{
|
||||
@@ -319,7 +319,7 @@ write_memory_unsigned_integer (CORE_ADDR addr, int len,
|
||||
/* Store VALUE at ADDR in the inferior as a LEN-byte signed
|
||||
integer. */
|
||||
void
|
||||
write_memory_signed_integer (CORE_ADDR addr, int len,
|
||||
write_memory_signed_integer (CORE_ADDR addr, int len,
|
||||
enum bfd_endian byte_order,
|
||||
LONGEST value)
|
||||
{
|
||||
|
||||
@@ -1914,7 +1914,7 @@ core_target::info_proc_mappings (struct gdbarch *gdbarch)
|
||||
}
|
||||
}
|
||||
|
||||
/* Implement "maintenance print core-file-backed-mappings" command.
|
||||
/* Implement "maintenance print core-file-backed-mappings" command.
|
||||
|
||||
If mappings are loaded, the results should be similar to the
|
||||
mappings shown by "info proc mappings". This command is mainly a
|
||||
|
||||
@@ -72,7 +72,7 @@ enum dtor_kinds {
|
||||
object. */
|
||||
base_object_dtor
|
||||
};
|
||||
|
||||
|
||||
/* Return non-zero iff NAME is the mangled name of a destructor.
|
||||
Actually, return an `enum dtor_kind' value describing what *kind*
|
||||
of destructor it is. */
|
||||
|
||||
@@ -706,7 +706,7 @@ mangled_name_to_comp (const char *mangled_name, int options,
|
||||
options);
|
||||
if (demangled_name == NULL)
|
||||
return NULL;
|
||||
|
||||
|
||||
/* If we could demangle the name, parse it to build the component
|
||||
tree. */
|
||||
std::unique_ptr<demangle_parse_info> info
|
||||
|
||||
402
gdb/cris-tdep.c
402
gdb/cris-tdep.c
File diff suppressed because it is too large
Load Diff
@@ -246,7 +246,7 @@ info_mach_ports_command (const char *args, int from_tty)
|
||||
gdb_printf (_("%u"), ref);
|
||||
gdb_printf (_(" refs)"));
|
||||
}
|
||||
|
||||
|
||||
if (task == task_self ())
|
||||
{
|
||||
if (port == task_self())
|
||||
@@ -700,7 +700,7 @@ info_mach_regions_command (const char *args, int from_tty)
|
||||
task = get_task_from_args (args);
|
||||
if (task == TASK_NULL)
|
||||
return;
|
||||
|
||||
|
||||
darwin_debug_regions (task, 0, -1);
|
||||
}
|
||||
|
||||
@@ -712,7 +712,7 @@ info_mach_regions_recurse_command (const char *args, int from_tty)
|
||||
task = get_task_from_args (args);
|
||||
if (task == TASK_NULL)
|
||||
return;
|
||||
|
||||
|
||||
darwin_debug_regions_recurse (task);
|
||||
}
|
||||
|
||||
@@ -828,7 +828,7 @@ info_mach_exceptions_command (const char *args, int from_tty)
|
||||
if (inferior_ptid == null_ptid)
|
||||
gdb_printf (_("No inferior running\n"));
|
||||
inf = current_inferior ();
|
||||
|
||||
|
||||
darwin_inferior *priv = get_darwin_inferior (inf);
|
||||
|
||||
kret = task_get_exception_ports
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* This module provides three functions: dbx_symfile_init,
|
||||
which initializes to read a symbol file; dbx_new_init, which
|
||||
which initializes to read a symbol file; dbx_new_init, which
|
||||
discards existing cached information when all symbols are being
|
||||
discarded; and dbx_symfile_read, which reads a symbol table
|
||||
from a file.
|
||||
@@ -73,7 +73,7 @@ explicit_lookup_type (int real_filenum, int index)
|
||||
#endif
|
||||
|
||||
/* Scan and build partial symbols for a symbol file.
|
||||
We have been initialized by a call to dbx_symfile_init, which
|
||||
We have been initialized by a call to dbx_symfile_init, which
|
||||
put all the relevant info into a "struct dbx_symfile_info",
|
||||
hung off the objfile structure. */
|
||||
|
||||
|
||||
@@ -391,7 +391,7 @@ dcache_alloc (DCACHE *dcache, CORE_ADDR addr)
|
||||
}
|
||||
|
||||
/* Using the data cache DCACHE, store in *PTR the contents of the byte at
|
||||
address ADDR in the remote machine.
|
||||
address ADDR in the remote machine.
|
||||
|
||||
Returns 1 for success, 0 for error. */
|
||||
|
||||
@@ -571,7 +571,7 @@ dcache_print_line (DCACHE *dcache, int index)
|
||||
gdb_printf (_("No such cache line exists.\n"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
db = (struct dcache_block *) n->value;
|
||||
|
||||
gdb_printf (_("Line %d: address %s [%d hits]\n"),
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
/* The O_BINARY flag is defined in fcntl.h on some non-Posix platforms.
|
||||
It is used as an access modifier in calls to open(), where it acts
|
||||
similarly to the "b" character in fopen()'s MODE argument. On Posix
|
||||
platforms it should be a no-op, so it is defined as 0 here. This
|
||||
platforms it should be a no-op, so it is defined as 0 here. This
|
||||
ensures that the symbol may be used freely elsewhere in gdb. */
|
||||
|
||||
#ifndef O_BINARY
|
||||
@@ -343,9 +343,9 @@ extern void (*deprecated_post_add_symbol_hook) (void);
|
||||
extern void (*selected_frame_level_changed_hook) (int);
|
||||
extern int (*deprecated_ui_loop_hook) (int signo);
|
||||
extern void (*deprecated_show_load_progress) (const char *section,
|
||||
unsigned long section_sent,
|
||||
unsigned long section_size,
|
||||
unsigned long total_sent,
|
||||
unsigned long section_sent,
|
||||
unsigned long section_size,
|
||||
unsigned long total_sent,
|
||||
unsigned long total_size);
|
||||
extern void (*deprecated_print_frame_info_listing_hook) (struct symtab * s,
|
||||
int line,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Routines for name->symbol lookups in GDB.
|
||||
|
||||
|
||||
Copyright (C) 2003-2025 Free Software Foundation, Inc.
|
||||
|
||||
Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
|
||||
@@ -43,7 +43,7 @@
|
||||
is:
|
||||
|
||||
* Add a new element DICT_<IMPL> to dict_type.
|
||||
|
||||
|
||||
* Create a new structure dictionary_<impl>. If your new
|
||||
implementation is a variant of an existing one, make sure that
|
||||
their structs have the same initial data members. Define accessor
|
||||
@@ -500,7 +500,7 @@ dict_size (const struct dictionary *dict)
|
||||
{
|
||||
return (DICT_VECTOR (dict))->size (dict);
|
||||
}
|
||||
|
||||
|
||||
/* Now come functions (well, one function, currently) that are
|
||||
implemented generically by means of the vtable. Typically, they're
|
||||
rarely used. */
|
||||
@@ -539,7 +539,7 @@ iterator_next_hashed (struct dict_iterator *iterator)
|
||||
struct symbol *next;
|
||||
|
||||
next = DICT_ITERATOR_CURRENT (iterator)->hash_next;
|
||||
|
||||
|
||||
if (next == NULL)
|
||||
return iterator_hashed_advance (iterator);
|
||||
else
|
||||
@@ -559,7 +559,7 @@ iterator_hashed_advance (struct dict_iterator *iterator)
|
||||
for (i = DICT_ITERATOR_INDEX (iterator) + 1; i < nbuckets; ++i)
|
||||
{
|
||||
struct symbol *sym = DICT_HASHED_BUCKET (dict, i);
|
||||
|
||||
|
||||
if (sym != NULL)
|
||||
{
|
||||
DICT_ITERATOR_INDEX (iterator) = i;
|
||||
@@ -588,7 +588,7 @@ iter_match_first_hashed (const struct dictionary *dict,
|
||||
/* Loop through the symbols in the given bucket, breaking when SYM
|
||||
first matches. If SYM never matches, it will be set to NULL;
|
||||
either way, we have the right return value. */
|
||||
|
||||
|
||||
for (sym = DICT_HASHED_BUCKET (dict, hash_index);
|
||||
sym != NULL;
|
||||
sym = sym->hash_next)
|
||||
@@ -706,7 +706,7 @@ expand_hashtable (struct dictionary *dict)
|
||||
struct symbol *sym, *next_sym;
|
||||
|
||||
sym = old_buckets[i];
|
||||
if (sym != NULL)
|
||||
if (sym != NULL)
|
||||
{
|
||||
for (next_sym = sym->hash_next;
|
||||
next_sym != NULL;
|
||||
@@ -733,7 +733,7 @@ language_defn::search_name_hash (const char *string0) const
|
||||
are lower-cased identifiers). The <suffix> (which can be empty)
|
||||
encodes additional information about the denoted entity. This
|
||||
routine hashes such names to msymbol_hash_iw(Pn). It actually
|
||||
does this for a superset of both valid Pi and of <suffix>, but
|
||||
does this for a superset of both valid Pi and of <suffix>, but
|
||||
in other cases it simply returns msymbol_hash_iw(STRING0). */
|
||||
|
||||
const char *string;
|
||||
@@ -859,7 +859,7 @@ iter_match_next_linear (const lookup_name_info &name,
|
||||
}
|
||||
|
||||
DICT_ITERATOR_INDEX (iterator) = i;
|
||||
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Routines for name->symbol lookups in GDB.
|
||||
|
||||
|
||||
Copyright (C) 2003-2025 Free Software Foundation, Inc.
|
||||
|
||||
Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
|
||||
@@ -151,7 +151,7 @@ extern struct symbol *
|
||||
/* Advance MITERATOR to point at the next symbol in MDICT whose
|
||||
search_name () is NAME, as tested using COMPARE (see
|
||||
dict_iter_match_first), or NULL if there are no more such symbols.
|
||||
Don't call this if you've previously received NULL from
|
||||
Don't call this if you've previously received NULL from
|
||||
mdict_iterator_match_first or mdict_iterator_match_next on this
|
||||
iteration. And don't call it unless MITERATOR was created by a
|
||||
previous call to mdict_iter_match_first with the same NAME and COMPARE. */
|
||||
|
||||
@@ -82,7 +82,7 @@ PACKAGE = @PACKAGE@
|
||||
PKGVERSION = @PKGVERSION@
|
||||
BUGURL_TEXI = @REPORT_BUGS_TEXI@
|
||||
|
||||
# Where is the source dir for the READLINE library doc?
|
||||
# Where is the source dir for the READLINE library doc?
|
||||
# Traditionally readline is in .. or .
|
||||
READLINE_DIR = ${gdbdir}/../readline/readline/doc
|
||||
READLINE_TEXI_INCFLAG = @READLINE_TEXI_INCFLAG@
|
||||
@@ -236,10 +236,10 @@ doxy/gdbserver/index.html: Doxyfile-gdbserver Doxyfile-base
|
||||
-mkdir -p doxy
|
||||
$(DOXYGEN) Doxyfile-gdbserver
|
||||
|
||||
Doxyfile-base: $(srcdir)/Doxyfile-base.in
|
||||
Doxyfile-base: $(srcdir)/Doxyfile-base.in
|
||||
$(doxyedit) $(srcdir)/Doxyfile-base.in >Doxyfile-base
|
||||
|
||||
Doxyfile-gdb-api: $(srcdir)/Doxyfile-gdb-api.in
|
||||
Doxyfile-gdb-api: $(srcdir)/Doxyfile-gdb-api.in
|
||||
$(doxyedit) $(srcdir)/Doxyfile-gdb-api.in >Doxyfile-gdb-api
|
||||
|
||||
Doxyfile-gdb-xref: $(srcdir)/Doxyfile-gdb-xref.in
|
||||
@@ -517,7 +517,7 @@ gdb.info: ${GDB_DOC_FILES}
|
||||
|
||||
# GDB MANUAL: roff translations
|
||||
# Try to use a recent texi2roff. v2 was put on prep in jan91.
|
||||
# If you want an index, see texi2roff doc for postprocessing
|
||||
# If you want an index, see texi2roff doc for postprocessing
|
||||
# and add -i to texi2roff invocations below.
|
||||
# Workarounds for texi2roff-2 (probably fixed in later texi2roff's, delete
|
||||
# corresponding -e lines when later texi2roff's are current)
|
||||
@@ -526,7 +526,7 @@ gdb.info: ${GDB_DOC_FILES}
|
||||
# + @ (that's at-BLANK) not recognized by texi2roff, turned into blank
|
||||
# + @alphaenumerate is ridiculously new, turned into @enumerate
|
||||
|
||||
# texi2roff doesn't have a notion of include dirs, so we have to fake
|
||||
# texi2roff doesn't have a notion of include dirs, so we have to fake
|
||||
# it out for gdb manual's include files---but only if not configured
|
||||
# in main sourcedir.
|
||||
links2roff: $(GDB_DOC_SOURCE_INCLUDES)
|
||||
@@ -550,7 +550,7 @@ gdb.me: $(GDB_DOC_FILES) links2roff
|
||||
$(srcdir)/gdb.texinfo | \
|
||||
$(TEXI2ROFF) -me | \
|
||||
sed -e 's/---/\\(em/g' \
|
||||
>gdb.me
|
||||
>gdb.me
|
||||
|
||||
# gdb manual suitable for [gtn]roff -ms
|
||||
gdb.ms: $(GDB_DOC_FILES) links2roff
|
||||
@@ -565,10 +565,10 @@ gdb.ms: $(GDB_DOC_FILES) links2roff
|
||||
$(srcdir)/gdb.texinfo | \
|
||||
$(TEXI2ROFF) -ms | \
|
||||
sed -e 's/---/\\(em/g' \
|
||||
>gdb.ms
|
||||
>gdb.ms
|
||||
|
||||
# gdb manual suitable for [tn]roff -mm
|
||||
# '@noindent's removed due to texi2roff-2 mm bug; if yours is newer,
|
||||
# '@noindent's removed due to texi2roff-2 mm bug; if yours is newer,
|
||||
# try leaving them in
|
||||
gdb.mm: $(GDB_DOC_FILES) links2roff
|
||||
$(ECHO_GEN) sed -e '/\\input texinfo/d' \
|
||||
@@ -583,7 +583,7 @@ gdb.mm: $(GDB_DOC_FILES) links2roff
|
||||
$(srcdir)/gdb.texinfo | \
|
||||
$(TEXI2ROFF) -mm | \
|
||||
sed -e 's/---/\\(em/g' \
|
||||
>gdb.mm
|
||||
>gdb.mm
|
||||
|
||||
# GDB MANUAL: HTML file
|
||||
|
||||
@@ -685,7 +685,7 @@ clean: mostlyclean
|
||||
distclean: clean
|
||||
rm -f Makefile
|
||||
|
||||
# GDBvn.texi, the dvi files, the info files, and the postscript files,
|
||||
# GDBvn.texi, the dvi files, the info files, and the postscript files,
|
||||
# are all part of the distribution, so it should not be removed by
|
||||
# "clean" or "distclean". Use maintainer-clean to remove them.
|
||||
|
||||
|
||||
@@ -118,7 +118,7 @@ operations.
|
||||
There are no instructions to perform side effects on the running
|
||||
program, or call the program's functions; we assume that these
|
||||
expressions are only used for unobtrusive debugging, not for patching
|
||||
the running code.
|
||||
the running code.
|
||||
|
||||
Most bytecode instructions do not distinguish between the various sizes
|
||||
of values, and operate on full-width values; the upper bits of the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@c GDB MANUAL configuration file.
|
||||
@c GDB MANUAL configuration file.
|
||||
@c
|
||||
@c Copyright (C) 1993--2025 Free Software Foundation, Inc.
|
||||
@c
|
||||
@@ -10,8 +10,8 @@
|
||||
@c
|
||||
@c The only automatically-varying variable is the GDB version number,
|
||||
@c which the Makefile rewrites based on the VERSION variable from
|
||||
@c `../Makefile.in'.
|
||||
@c
|
||||
@c `../Makefile.in'.
|
||||
@c
|
||||
@c GDB version number is recorded in the variable GDBVN
|
||||
@include GDBvn.texi
|
||||
@c
|
||||
@@ -30,7 +30,7 @@
|
||||
@c
|
||||
@c Name of GDB program. Used also for (gdb) prompt string.
|
||||
@set GDBP gdb
|
||||
@c
|
||||
@c
|
||||
@c Name of GDB product. Used in running text.
|
||||
@set GDBN @sc{gdb}
|
||||
@c
|
||||
@@ -40,6 +40,6 @@
|
||||
@c
|
||||
@c Name of GCC product
|
||||
@set NGCC @sc{gcc}
|
||||
@c
|
||||
@c
|
||||
@c Name of GCC program
|
||||
@set GCC gcc
|
||||
|
||||
@@ -241,21 +241,21 @@ struct dtrace_dof_hdr
|
||||
/* Identification bytes (see above). */
|
||||
uint8_t dofh_ident[16];
|
||||
/* File attribute flags (if any). */
|
||||
uint32_t dofh_flags;
|
||||
uint32_t dofh_flags;
|
||||
/* Size of file header in bytes. */
|
||||
uint32_t dofh_hdrsize;
|
||||
uint32_t dofh_hdrsize;
|
||||
/* Size of section header in bytes. */
|
||||
uint32_t dofh_secsize;
|
||||
uint32_t dofh_secsize;
|
||||
/* Number of section headers. */
|
||||
uint32_t dofh_secnum;
|
||||
uint32_t dofh_secnum;
|
||||
/* File offset of section headers. */
|
||||
uint64_t dofh_secoff;
|
||||
uint64_t dofh_secoff;
|
||||
/* File size of loadable portion. */
|
||||
uint64_t dofh_loadsz;
|
||||
uint64_t dofh_loadsz;
|
||||
/* File size of entire DOF file. */
|
||||
uint64_t dofh_filesz;
|
||||
uint64_t dofh_filesz;
|
||||
/* Reserved for future use. */
|
||||
uint64_t dofh_pad;
|
||||
uint64_t dofh_pad;
|
||||
};
|
||||
|
||||
/* A DOF section, whose contents depend on its type. The several
|
||||
@@ -267,15 +267,15 @@ struct dtrace_dof_sect
|
||||
/* Section type (see the define above). */
|
||||
uint32_t dofs_type;
|
||||
/* Section data memory alignment. */
|
||||
uint32_t dofs_align;
|
||||
uint32_t dofs_align;
|
||||
/* Section flags (if any). */
|
||||
uint32_t dofs_flags;
|
||||
uint32_t dofs_flags;
|
||||
/* Size of section entry (if table). */
|
||||
uint32_t dofs_entsize;
|
||||
/* DOF + offset points to the section data. */
|
||||
uint64_t dofs_offset;
|
||||
/* Size of section data in bytes. */
|
||||
uint64_t dofs_size;
|
||||
uint64_t dofs_size;
|
||||
};
|
||||
|
||||
/* A DOF provider, which is the provider of a probe. */
|
||||
@@ -283,19 +283,19 @@ struct dtrace_dof_sect
|
||||
struct dtrace_dof_provider
|
||||
{
|
||||
/* Link to a DTRACE_DOF_SECT_TYPE_STRTAB section. */
|
||||
uint32_t dofpv_strtab;
|
||||
uint32_t dofpv_strtab;
|
||||
/* Link to a DTRACE_DOF_SECT_TYPE_PROBES section. */
|
||||
uint32_t dofpv_probes;
|
||||
uint32_t dofpv_probes;
|
||||
/* Link to a DTRACE_DOF_SECT_TYPE_PRARGS section. */
|
||||
uint32_t dofpv_prargs;
|
||||
uint32_t dofpv_prargs;
|
||||
/* Link to a DTRACE_DOF_SECT_TYPE_PROFFS section. */
|
||||
uint32_t dofpv_proffs;
|
||||
uint32_t dofpv_proffs;
|
||||
/* Provider name string. */
|
||||
uint32_t dofpv_name;
|
||||
uint32_t dofpv_name;
|
||||
/* Provider attributes. */
|
||||
uint32_t dofpv_provattr;
|
||||
/* Module attributes. */
|
||||
uint32_t dofpv_modattr;
|
||||
uint32_t dofpv_modattr;
|
||||
/* Function attributes. */
|
||||
uint32_t dofpv_funcattr;
|
||||
/* Name attributes. */
|
||||
@@ -315,33 +315,33 @@ struct dtrace_dof_provider
|
||||
struct dtrace_dof_probe
|
||||
{
|
||||
/* Probe base address or offset. */
|
||||
uint64_t dofpr_addr;
|
||||
uint64_t dofpr_addr;
|
||||
/* Probe function string. */
|
||||
uint32_t dofpr_func;
|
||||
uint32_t dofpr_func;
|
||||
/* Probe name string. */
|
||||
uint32_t dofpr_name;
|
||||
uint32_t dofpr_name;
|
||||
/* Native argument type strings. */
|
||||
uint32_t dofpr_nargv;
|
||||
uint32_t dofpr_nargv;
|
||||
/* Translated argument type strings. */
|
||||
uint32_t dofpr_xargv;
|
||||
uint32_t dofpr_xargv;
|
||||
/* Index of first argument mapping. */
|
||||
uint32_t dofpr_argidx;
|
||||
uint32_t dofpr_argidx;
|
||||
/* Index of first offset entry. */
|
||||
uint32_t dofpr_offidx;
|
||||
uint32_t dofpr_offidx;
|
||||
/* Native argument count. */
|
||||
uint8_t dofpr_nargc;
|
||||
uint8_t dofpr_nargc;
|
||||
/* Translated argument count. */
|
||||
uint8_t dofpr_xargc;
|
||||
uint8_t dofpr_xargc;
|
||||
/* Number of offset entries for probe. */
|
||||
uint16_t dofpr_noffs;
|
||||
uint16_t dofpr_noffs;
|
||||
/* Index of first is-enabled offset. */
|
||||
uint32_t dofpr_enoffidx;
|
||||
/* Number of is-enabled offsets. */
|
||||
uint16_t dofpr_nenoffs;
|
||||
/* Reserved for future use. */
|
||||
uint16_t dofpr_pad1;
|
||||
uint16_t dofpr_pad1;
|
||||
/* Reserved for future use. */
|
||||
uint32_t dofpr_pad2;
|
||||
uint32_t dofpr_pad2;
|
||||
};
|
||||
|
||||
/* DOF supports two different encodings: MSB (big-endian) and LSB
|
||||
@@ -605,7 +605,7 @@ dtrace_process_dof (asection *sect, struct objfile *objfile,
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
|
||||
invalid_dof_data:
|
||||
complaint (_("skipping section '%s' which does not contain valid DOF data."),
|
||||
sect->name);
|
||||
|
||||
@@ -297,7 +297,7 @@ dummy_frame_sniffer (const struct frame_unwind *self,
|
||||
entry point, or some random address on the stack. Trying to use
|
||||
that PC to apply standard frame ID unwind techniques is just
|
||||
asking for trouble. */
|
||||
|
||||
|
||||
/* Don't bother unless there is at least one dummy frame. */
|
||||
if (dummy_frame_stack != NULL)
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* DIE indexing
|
||||
/* DIE indexing
|
||||
|
||||
Copyright (C) 2022-2025 Free Software Foundation, Inc.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* DIE indexing
|
||||
/* DIE indexing
|
||||
|
||||
Copyright (C) 2022-2025 Free Software Foundation, Inc.
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
. v / | \
|
||||
. wait (MAIN_AVAILABLE) finalization
|
||||
. | \ | /
|
||||
. v \ | /
|
||||
. v \ | /
|
||||
. done state = FINALIZED
|
||||
. |
|
||||
. v
|
||||
|
||||
@@ -1932,7 +1932,7 @@ dwarf_expr_context::execute_stack_op (const gdb_byte *op_ptr,
|
||||
result_val = fetch (offset);
|
||||
in_stack_memory = fetch_in_stack_memory (offset);
|
||||
break;
|
||||
|
||||
|
||||
case DW_OP_swap:
|
||||
{
|
||||
if (this->m_stack.size () < 2)
|
||||
@@ -2300,7 +2300,7 @@ dwarf_expr_context::execute_stack_op (const gdb_byte *op_ptr,
|
||||
result_val = value_cast (address_type, result_val);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case DW_OP_entry_value:
|
||||
case DW_OP_GNU_entry_value:
|
||||
{
|
||||
|
||||
@@ -352,7 +352,7 @@ tailcall_frame_sniffer (const struct frame_unwind *self,
|
||||
chain to create. Keep TAILCALL_CACHEP NULL if it did not find any chain,
|
||||
initialize it otherwise. No tail call chain is created if there are no
|
||||
unambiguous virtual tail call frames to report.
|
||||
|
||||
|
||||
ENTRY_CFA_SP_OFFSETP is NULL if no special SP handling is possible,
|
||||
otherwise *ENTRY_CFA_SP_OFFSETP is the number of bytes to subtract from tail
|
||||
call frames frame base to get the SP value there - to simulate return
|
||||
|
||||
@@ -1162,7 +1162,7 @@ dwarf2_frame_prev_register (const frame_info_ptr &this_frame, void **this_cache,
|
||||
if (cache->tailcall_cache)
|
||||
{
|
||||
struct value *val;
|
||||
|
||||
|
||||
val = dwarf2_tailcall_prev_register_first (this_frame,
|
||||
&cache->tailcall_cache,
|
||||
regnum);
|
||||
@@ -1447,7 +1447,7 @@ static const registry<objfile>::key<comp_unit> dwarf2_frame_objfile_data;
|
||||
way. Several "pointer encodings" are supported. The encoding
|
||||
that's used for a particular FDE is determined by the 'R'
|
||||
augmentation in the associated CIE. The argument of this
|
||||
augmentation is a single byte.
|
||||
augmentation is a single byte.
|
||||
|
||||
The address can be encoded as 2 bytes, 4 bytes, 8 bytes, or as a
|
||||
LEB128. This is encoded in bits 0, 1 and 2. Bit 3 encodes whether
|
||||
@@ -2034,7 +2034,7 @@ decode_frame_entry (struct gdbarch *gdbarch,
|
||||
|
||||
This becomes a problem when you have some other producer that
|
||||
creates frame sections that are not as strictly aligned. That
|
||||
produces a hole in the frame info that gets filled by the
|
||||
produces a hole in the frame info that gets filled by the
|
||||
linker with zeros.
|
||||
|
||||
The GCC behavior is arguably a bug, but it's effectively now
|
||||
|
||||
@@ -673,7 +673,7 @@ call_site_target::iterate_over_addresses (gdbarch *call_site_gdbarch,
|
||||
paddress (call_site_gdbarch, call_site->pc ()),
|
||||
(msym.minsym == NULL ? "???"
|
||||
: msym.minsym->print_name ()));
|
||||
|
||||
|
||||
}
|
||||
if (caller_frame == NULL)
|
||||
{
|
||||
@@ -686,7 +686,7 @@ call_site_target::iterate_over_addresses (gdbarch *call_site_gdbarch,
|
||||
paddress (call_site_gdbarch, call_site->pc ()),
|
||||
(msym.minsym == NULL ? "???"
|
||||
: msym.minsym->print_name ()));
|
||||
|
||||
|
||||
}
|
||||
caller_arch = get_frame_arch (caller_frame);
|
||||
caller_core_addr_type = builtin_type (caller_arch)->builtin_func_ptr;
|
||||
@@ -720,7 +720,7 @@ call_site_target::iterate_over_addresses (gdbarch *call_site_gdbarch,
|
||||
physname, paddress (call_site_gdbarch, call_site->pc ()),
|
||||
(msym.minsym == NULL ? "???"
|
||||
: msym.minsym->print_name ()));
|
||||
|
||||
|
||||
}
|
||||
|
||||
CORE_ADDR addr = (gdbarch_convert_from_func_ptr_addr
|
||||
@@ -1237,7 +1237,7 @@ dwarf_expr_reg_to_entry_parameter (const frame_info_ptr &initial_frame,
|
||||
throw_error (NO_ENTRY_VALUE_ERROR, _("Cannot find matching parameter "
|
||||
"at DW_TAG_call_site %s at %s"),
|
||||
paddress (gdbarch, caller_pc),
|
||||
msym == NULL ? "???" : msym->print_name ());
|
||||
msym == NULL ? "???" : msym->print_name ());
|
||||
}
|
||||
|
||||
*per_cu_return = call_site->per_cu;
|
||||
@@ -2385,14 +2385,14 @@ access_memory (struct gdbarch *arch, struct agent_expr *expr, ULONGEST nbits)
|
||||
}
|
||||
|
||||
/* Compile a DWARF location expression to an agent expression.
|
||||
|
||||
|
||||
EXPR is the agent expression we are building.
|
||||
LOC is the agent value we modify.
|
||||
ARCH is the architecture.
|
||||
ADDR_SIZE is the size of addresses, in bytes.
|
||||
OP_PTR is the start of the location expression.
|
||||
OP_END is one past the last byte of the location expression.
|
||||
|
||||
|
||||
This will throw an exception for various kinds of errors -- for
|
||||
example, if the expression cannot be compiled, or if the expression
|
||||
is invalid. */
|
||||
@@ -3217,7 +3217,7 @@ locexpr_describe_location_piece (struct symbol *symbol, struct ui_file *stream,
|
||||
if (base_data[0] >= DW_OP_breg0 && base_data[0] <= DW_OP_breg31)
|
||||
{
|
||||
const gdb_byte *buf_end;
|
||||
|
||||
|
||||
frame_reg = base_data[0] - DW_OP_breg0;
|
||||
buf_end = safe_read_sleb128 (base_data + 1, base_data + base_size,
|
||||
&base_offset);
|
||||
@@ -3283,7 +3283,7 @@ locexpr_describe_location_piece (struct symbol *symbol, struct ui_file *stream,
|
||||
offset = extract_unsigned_integer (data + 1, addr_size,
|
||||
gdbarch_byte_order (gdbarch));
|
||||
|
||||
gdb_printf (stream,
|
||||
gdb_printf (stream,
|
||||
_("a thread-local variable at offset 0x%s "
|
||||
"in the thread-local storage for `%s'"),
|
||||
phex_nz (offset, addr_size), objfile_name (objfile));
|
||||
@@ -3310,7 +3310,7 @@ locexpr_describe_location_piece (struct symbol *symbol, struct ui_file *stream,
|
||||
|
||||
data = safe_read_uleb128 (data + 1, end, &offset);
|
||||
offset = (uint64_t) dwarf2_read_addr_index (per_cu, per_objfile, offset);
|
||||
gdb_printf (stream,
|
||||
gdb_printf (stream,
|
||||
_("a thread-local variable at offset 0x%s "
|
||||
"in the thread-local storage for `%s'"),
|
||||
phex_nz (offset, addr_size), objfile_name (objfile));
|
||||
@@ -3791,7 +3791,7 @@ locexpr_describe_location_1 (struct symbol *symbol, CORE_ADDR addr,
|
||||
if (data < end)
|
||||
{
|
||||
int empty = data == here;
|
||||
|
||||
|
||||
if (disassemble)
|
||||
gdb_printf (stream, " ");
|
||||
if (data[0] == DW_OP_piece)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* DIE indexing
|
||||
/* DIE indexing
|
||||
|
||||
Copyright (C) 2024-2025 Free Software Foundation, Inc.
|
||||
|
||||
|
||||
@@ -321,7 +321,7 @@ mapped_debug_names_reader::scan_entries (uint32_t index,
|
||||
const gdb_byte *entry)
|
||||
{
|
||||
std::vector<cooked_index_entry *> these_entries;
|
||||
|
||||
|
||||
while (true)
|
||||
{
|
||||
std::optional<ULONGEST> parent;
|
||||
|
||||
@@ -3947,7 +3947,7 @@ cutu_reader::skip_one_attribute (dwarf_form form, const gdb_byte *info_ptr)
|
||||
INFO_PTR should point just after the initial uleb128 of a DIE, and the
|
||||
abbrev corresponding to that skipped uleb128 should be passed in
|
||||
ABBREV.
|
||||
|
||||
|
||||
If DO_SKIP_CHILDREN is true, or if the DIE has no children, this
|
||||
returns a pointer to this DIE's sibling, skipping any children.
|
||||
Otherwise, returns a pointer to the DIE's first child. */
|
||||
@@ -8802,7 +8802,7 @@ read_call_site_scope (struct die_info *die, struct dwarf2_cu *cu)
|
||||
struct call_site,
|
||||
sizeof (*call_site) + sizeof (call_site->parameter[0]) * nparams))
|
||||
struct call_site (pc, cu->per_cu, per_objfile);
|
||||
|
||||
|
||||
if (!cu->call_site_htab.emplace (call_site).second)
|
||||
{
|
||||
complaint (_("Duplicate PC %s for DW_TAG_call_site "
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Work with executable files, for GDB.
|
||||
/* Work with executable files, for GDB.
|
||||
|
||||
Copyright (C) 1988-2025 Free Software Foundation, Inc.
|
||||
|
||||
@@ -533,7 +533,7 @@ Use the \"file\" or \"exec-file\" command."));
|
||||
Note that we have to explicitly ignore additional args, since we can
|
||||
be called from file_command(), which also calls symbol_file_command()
|
||||
which can take multiple args.
|
||||
|
||||
|
||||
If ARGS is NULL, we just want to close the exec file. */
|
||||
|
||||
static void
|
||||
@@ -963,8 +963,8 @@ print_section_info (const std::vector<target_section> *t, bfd *abfd)
|
||||
styled_string (file_name_style.style (),
|
||||
bfd_get_filename (abfd)));
|
||||
|
||||
entry_point = gdbarch_addr_bits_remove (gdbarch,
|
||||
bfd_get_start_address (abfd)
|
||||
entry_point = gdbarch_addr_bits_remove (gdbarch,
|
||||
bfd_get_start_address (abfd)
|
||||
+ displacement);
|
||||
gdb_printf (_("\tEntry point: %s\n"),
|
||||
paddress (gdbarch, entry_point));
|
||||
|
||||
@@ -74,11 +74,11 @@ f77_get_dynamic_length_of_aggregate (struct type *type)
|
||||
|
||||
/* Recursively go all the way down into a possibly multi-dimensional
|
||||
F77 array and get the bounds. For simple arrays, this is pretty
|
||||
easy but when the bounds are dynamic, we must be very careful
|
||||
to add up all the lengths correctly. Not doing this right
|
||||
easy but when the bounds are dynamic, we must be very careful
|
||||
to add up all the lengths correctly. Not doing this right
|
||||
will lead to horrendous-looking arrays in parameter lists.
|
||||
|
||||
This function also works for strings which behave very
|
||||
This function also works for strings which behave very
|
||||
similarly to arrays. */
|
||||
|
||||
if (type->target_type ()->code () == TYPE_CODE_ARRAY
|
||||
@@ -577,7 +577,7 @@ f_language::value_print_inner (struct value *val, struct ui_file *stream,
|
||||
}
|
||||
}
|
||||
gdb_printf (stream, " )");
|
||||
break;
|
||||
break;
|
||||
|
||||
case TYPE_CODE_BOOL:
|
||||
if (options->format || options->output_format)
|
||||
@@ -646,7 +646,7 @@ info_common_command_for_block (const struct block *block, const char *comname,
|
||||
sym->print_name ());
|
||||
else
|
||||
gdb_printf (_("Contents of blank COMMON block:\n"));
|
||||
|
||||
|
||||
for (index = 0; index < common->n_entries; index++)
|
||||
{
|
||||
struct value *val = NULL;
|
||||
@@ -672,8 +672,8 @@ info_common_command_for_block (const struct block *block, const char *comname,
|
||||
}
|
||||
}
|
||||
|
||||
/* This function is used to print out the values in a given COMMON
|
||||
block. It will always use the most local common block of the
|
||||
/* This function is used to print out the values in a given COMMON
|
||||
block. It will always use the most local common block of the
|
||||
given name. */
|
||||
|
||||
static void
|
||||
@@ -683,14 +683,14 @@ info_common_command (const char *comname, int from_tty)
|
||||
const struct block *block;
|
||||
int values_printed = 0;
|
||||
|
||||
/* We have been told to display the contents of F77 COMMON
|
||||
block supposedly visible in this function. Let us
|
||||
first make sure that it is visible and if so, let
|
||||
/* We have been told to display the contents of F77 COMMON
|
||||
block supposedly visible in this function. Let us
|
||||
first make sure that it is visible and if so, let
|
||||
us display its contents. */
|
||||
|
||||
fi = get_selected_frame (_("No frame selected"));
|
||||
|
||||
/* The following is generally ripped off from stack.c's routine
|
||||
/* The following is generally ripped off from stack.c's routine
|
||||
print_frame_info(). */
|
||||
|
||||
block = get_frame_block (fi, 0);
|
||||
|
||||
@@ -202,7 +202,7 @@ frv_linux_sigcontext_reg_addr (const frame_info_ptr &this_frame, int regno,
|
||||
/* For a realtime sigtramp frame, SP + 12 contains a pointer
|
||||
to a ucontext struct. The ucontext struct contains a
|
||||
sigcontext struct starting 24 bytes in. (The offset of
|
||||
uc_mcontext within struct ucontext is derived as follows:
|
||||
uc_mcontext within struct ucontext is derived as follows:
|
||||
stack_t is a 12-byte struct and struct sigcontext is
|
||||
8-byte aligned. This gives an offset of 8 + 12 + 4 (for
|
||||
padding) = 24.) */
|
||||
@@ -245,7 +245,7 @@ frv_linux_sigcontext_reg_addr (const frame_info_ptr &this_frame, int regno,
|
||||
return sc_addr + 48;
|
||||
case iacc0l_regnum :
|
||||
return sc_addr + 52;
|
||||
default :
|
||||
default :
|
||||
if (first_gpr_regnum <= regno && regno <= last_gpr_regnum)
|
||||
return sc_addr + 56 + 4 * (regno - first_gpr_regnum);
|
||||
else if (first_fpr_regnum <= regno && regno <= last_fpr_regnum)
|
||||
@@ -409,7 +409,7 @@ static const struct regcache_map_entry frv_linux_fpregmap[] =
|
||||
|
||||
/* Unpack an frv_elf_gregset_t into GDB's register cache. */
|
||||
|
||||
static void
|
||||
static void
|
||||
frv_linux_supply_gregset (const struct regset *regset,
|
||||
struct regcache *regcache,
|
||||
int regnum, const void *gregs, size_t len)
|
||||
@@ -460,7 +460,7 @@ frv_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
|
||||
linux_init_abi (info, gdbarch, 0);
|
||||
|
||||
/* Set the sigtramp frame sniffer. */
|
||||
frame_unwind_append_unwinder (gdbarch, &frv_linux_sigtramp_frame_unwind);
|
||||
frame_unwind_append_unwinder (gdbarch, &frv_linux_sigtramp_frame_unwind);
|
||||
|
||||
set_gdbarch_iterate_over_regset_sections
|
||||
(gdbarch, frv_linux_iterate_over_regset_sections);
|
||||
|
||||
@@ -152,7 +152,7 @@ new_variant ()
|
||||
|
||||
/* By default, don't supply any general-purpose or floating-point
|
||||
register names. */
|
||||
var->register_names
|
||||
var->register_names
|
||||
= (const char **) xmalloc ((frv_num_regs + frv_num_pseudo_regs)
|
||||
* sizeof (const char *));
|
||||
for (r = 0; r < frv_num_regs + frv_num_pseudo_regs; r++)
|
||||
@@ -164,7 +164,7 @@ new_variant ()
|
||||
var->register_names[pc_regnum] = "pc";
|
||||
var->register_names[lr_regnum] = "lr";
|
||||
var->register_names[lcr_regnum] = "lcr";
|
||||
|
||||
|
||||
var->register_names[psr_regnum] = "psr";
|
||||
var->register_names[ccr_regnum] = "ccr";
|
||||
var->register_names[cccr_regnum] = "cccr";
|
||||
@@ -794,7 +794,7 @@ frv_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR pc,
|
||||
sthi GRk, @(fp, s)
|
||||
P KKKKKK 1010001 000010 SSSSSSSSSSSS = 0x01442000
|
||||
0 000000 1111111 111111 000000000000 = 0x01fff000
|
||||
. . . . . . . .
|
||||
. . . . . . . .
|
||||
And for 8-bit values, we use STB instructions.
|
||||
stbi GRk, @(fp, s)
|
||||
P KKKKKK 1010000 000010 SSSSSSSSSSSS = 0x01402000
|
||||
@@ -1022,7 +1022,7 @@ frv_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
|
||||
|
||||
/* In PIC code, GR15 may be loaded from some offset off of FP prior
|
||||
to the call instruction.
|
||||
|
||||
|
||||
Skip over this instruction if present. It won't be present in
|
||||
non-PIC code, and even in PIC code, it might not be present.
|
||||
(This is due to the fact that GR15, the FDPIC register, already
|
||||
|
||||
@@ -180,9 +180,9 @@ ft32_analyze_prologue (CORE_ADDR start_addr, CORE_ADDR end_addr,
|
||||
is the address of __prolog_$rN.
|
||||
__prolog_$rN pushes registers from 13 through n inclusive.
|
||||
So for example CALL __prolog_$r15 is equivalent to:
|
||||
PUSH $r13
|
||||
PUSH $r14
|
||||
PUSH $r15
|
||||
PUSH $r13
|
||||
PUSH $r14
|
||||
PUSH $r15
|
||||
Note that PROLOGS[0] through PROLOGS[12] are unused. */
|
||||
CORE_ADDR prologs[32];
|
||||
|
||||
|
||||
@@ -286,7 +286,7 @@ call_target_sbrk (int sbrk_arg)
|
||||
return (bfd_vma) 0;
|
||||
|
||||
gdbarch = sbrk_objf->arch ();
|
||||
target_sbrk_arg = value_from_longest (builtin_type (gdbarch)->builtin_int,
|
||||
target_sbrk_arg = value_from_longest (builtin_type (gdbarch)->builtin_int,
|
||||
sbrk_arg);
|
||||
gdb_assert (target_sbrk_arg);
|
||||
ret = call_function_by_hand (sbrk_fn, NULL, target_sbrk_arg);
|
||||
|
||||
@@ -115,7 +115,7 @@ set_demangling_command (const char *ignore,
|
||||
If we match, update the current demangling style enum. */
|
||||
|
||||
for (dem = libiberty_demanglers, i = 0;
|
||||
dem->demangling_style != unknown_demangling;
|
||||
dem->demangling_style != unknown_demangling;
|
||||
dem++)
|
||||
{
|
||||
if (strcmp (current_demangling_style_string,
|
||||
@@ -215,12 +215,12 @@ INIT_GDB_FILE (gdb_demangle)
|
||||
/* Fill the demangling_style_names[] array, and set the default
|
||||
demangling style chosen at compilation time. */
|
||||
for (ndems = 0;
|
||||
libiberty_demanglers[ndems].demangling_style != unknown_demangling;
|
||||
libiberty_demanglers[ndems].demangling_style != unknown_demangling;
|
||||
ndems++)
|
||||
;
|
||||
demangling_style_names = XCNEWVEC (const char *, ndems + 1);
|
||||
for (i = 0;
|
||||
libiberty_demanglers[i].demangling_style != unknown_demangling;
|
||||
libiberty_demanglers[i].demangling_style != unknown_demangling;
|
||||
i++)
|
||||
{
|
||||
demangling_style_names[i]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Main function for CLI gdb.
|
||||
/* Main function for CLI gdb.
|
||||
Copyright (C) 2002-2025 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
@@ -131,7 +131,7 @@ fi
|
||||
# Did the previous configure attempt fail? If it did restart from scratch
|
||||
if test -d ${dir} -a ! -r ${dir}/Makefile
|
||||
then
|
||||
echo ... removing partially configured
|
||||
echo ... removing partially configured
|
||||
rm -rf ${dir}
|
||||
if test -d ${dir}
|
||||
then
|
||||
@@ -209,7 +209,7 @@ mv arch gdb_archs
|
||||
if test "${targexp}" != ""
|
||||
then
|
||||
alltarg=`cat gdb_archs | grep ${targexp}`
|
||||
else
|
||||
else
|
||||
alltarg=`cat gdb_archs`
|
||||
fi
|
||||
rm -f gdb_archs
|
||||
@@ -237,7 +237,7 @@ EOF
|
||||
else
|
||||
echo " OK"
|
||||
fi
|
||||
|
||||
|
||||
# Create a sed script that cleans up the output from GDB.
|
||||
rm -f mbuild.sed
|
||||
# Rules to replace <0xNNNN> with the corresponding function's name.
|
||||
|
||||
@@ -266,7 +266,7 @@ do
|
||||
trap "exit 1" 1 2 15
|
||||
fi
|
||||
fail "configure failed" ! -r Makefile
|
||||
|
||||
|
||||
# Build, if not built.
|
||||
|
||||
if test ! -x gdb/gdb -a ! -x gdb/gdb.exe
|
||||
@@ -280,7 +280,7 @@ do
|
||||
) 2>&1 | log 1 Build.log
|
||||
fi
|
||||
fail "compile failed" ! -x gdb/gdb -a ! -x gdb/gdb.exe
|
||||
|
||||
|
||||
# Check that the built GDB can at least print it's architecture.
|
||||
|
||||
echo ... run ${target}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#define GDB_GDB_WCHAR_H
|
||||
|
||||
/* We handle three different modes here.
|
||||
|
||||
|
||||
Capable systems have the full suite: wchar_t support and iconv
|
||||
(perhaps via GNU libiconv). On these machines, full functionality
|
||||
is available. Note that full functionality is dependent on us
|
||||
@@ -28,12 +28,12 @@
|
||||
practice this means we look for __STDC_ISO_10646__ (where we know
|
||||
the name of the wchar_t encoding) or GNU libiconv, where we can use
|
||||
"wchar_t".
|
||||
|
||||
|
||||
DJGPP is known to have libiconv but not wchar_t support. On
|
||||
systems like this, we use the narrow character functions. The full
|
||||
functionality is available to the user, but many characters (those
|
||||
outside the narrow range) will be displayed as escapes.
|
||||
|
||||
|
||||
Finally, some systems do not have iconv, or are really broken
|
||||
(e.g., Solaris, which almost has all of this working, but where
|
||||
just enough is broken to make it too hard to use). Here we provide
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* Multi-process/thread control defs for GDB, the GNU debugger.
|
||||
Copyright (C) 1987-2025 Free Software Foundation, Inc.
|
||||
Contributed by Lynx Real-Time Systems, Inc. Los Gatos, CA.
|
||||
|
||||
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
@@ -263,7 +263,7 @@ public:
|
||||
void set_running (bool running);
|
||||
|
||||
ptid_t ptid; /* "Actual process id";
|
||||
In fact, this may be overloaded with
|
||||
In fact, this may be overloaded with
|
||||
kernel thread id, etc. */
|
||||
|
||||
/* Each thread has two GDB IDs.
|
||||
@@ -627,7 +627,7 @@ extern void init_thread_list (void);
|
||||
|
||||
/* Add a thread to the thread list, print a message
|
||||
that a new thread is found, and return the pointer to
|
||||
the new thread. Caller my use this pointer to
|
||||
the new thread. Caller my use this pointer to
|
||||
initialize the private thread data. */
|
||||
extern struct thread_info *add_thread (process_stratum_target *targ,
|
||||
ptid_t ptid);
|
||||
|
||||
@@ -148,7 +148,7 @@ static bool strict_type_checking = true;
|
||||
|
||||
static void
|
||||
show_opaque_type_resolution (struct ui_file *file, int from_tty,
|
||||
struct cmd_list_element *c,
|
||||
struct cmd_list_element *c,
|
||||
const char *value)
|
||||
{
|
||||
gdb_printf (file, _("Resolution of opaque struct/class/union types "
|
||||
@@ -162,7 +162,7 @@ static void
|
||||
show_overload_debug (struct ui_file *file, int from_tty,
|
||||
struct cmd_list_element *c, const char *value)
|
||||
{
|
||||
gdb_printf (file, _("Debugging of C++ overloading is %s.\n"),
|
||||
gdb_printf (file, _("Debugging of C++ overloading is %s.\n"),
|
||||
value);
|
||||
}
|
||||
|
||||
@@ -377,7 +377,7 @@ make_pointer_type (struct type *type, struct type **typeptr)
|
||||
if (ntype)
|
||||
{
|
||||
if (typeptr == 0)
|
||||
return ntype; /* Don't care about alloc,
|
||||
return ntype; /* Don't care about alloc,
|
||||
and have new type. */
|
||||
else if (*typeptr == 0)
|
||||
{
|
||||
@@ -455,7 +455,7 @@ make_reference_type (struct type *type, struct type **typeptr,
|
||||
if (ntype)
|
||||
{
|
||||
if (typeptr == 0)
|
||||
return ntype; /* Don't care about alloc,
|
||||
return ntype; /* Don't care about alloc,
|
||||
and have new type. */
|
||||
else if (*typeptr == 0)
|
||||
{
|
||||
@@ -750,8 +750,8 @@ make_type_with_address_space (struct type *type,
|
||||
new type we construct. */
|
||||
|
||||
struct type *
|
||||
make_cv_type (int cnst, int voltl,
|
||||
struct type *type,
|
||||
make_cv_type (int cnst, int voltl,
|
||||
struct type *type,
|
||||
struct type **typeptr)
|
||||
{
|
||||
struct type *ntype; /* New type */
|
||||
@@ -782,8 +782,8 @@ make_cv_type (int cnst, int voltl,
|
||||
name each time you encounter them. */
|
||||
gdb_assert ((*typeptr)->objfile_owner () == type->objfile_owner ());
|
||||
}
|
||||
|
||||
ntype = make_qualified_type (type, new_flags,
|
||||
|
||||
ntype = make_qualified_type (type, new_flags,
|
||||
typeptr ? *typeptr : NULL);
|
||||
|
||||
if (typeptr != NULL)
|
||||
@@ -1745,7 +1745,7 @@ lookup_union (const char *name, const struct block *block)
|
||||
return t;
|
||||
|
||||
/* If we get here, it's not a union. */
|
||||
error (_("This context has class, struct or enum %s, not a union."),
|
||||
error (_("This context has class, struct or enum %s, not a union."),
|
||||
name);
|
||||
}
|
||||
|
||||
@@ -1764,7 +1764,7 @@ lookup_enum (const char *name, const struct block *block)
|
||||
}
|
||||
if (sym->type ()->code () != TYPE_CODE_ENUM)
|
||||
{
|
||||
error (_("This context has class, struct or union %s, not an enum."),
|
||||
error (_("This context has class, struct or union %s, not an enum."),
|
||||
name);
|
||||
}
|
||||
return (sym->type ());
|
||||
@@ -1774,7 +1774,7 @@ lookup_enum (const char *name, const struct block *block)
|
||||
visible in lexical block BLOCK. */
|
||||
|
||||
struct type *
|
||||
lookup_template_type (const char *name, struct type *type,
|
||||
lookup_template_type (const char *name, struct type *type,
|
||||
const struct block *block)
|
||||
{
|
||||
std::string nam;
|
||||
@@ -2657,7 +2657,7 @@ compute_variant_fields_inner (struct type *type,
|
||||
for (const auto &variant : part.variants)
|
||||
compute_variant_fields_recurse (type, addr_stack, variant,
|
||||
flags, applied_variant == &variant);
|
||||
}
|
||||
}
|
||||
|
||||
/* Determine which variant fields are available in TYPE. The enabled
|
||||
fields are stored in RESOLVED_TYPE. ADDR_STACK holds information
|
||||
@@ -3180,8 +3180,8 @@ check_typedef (struct type *type)
|
||||
types, instead of identifying them as stub types in the first
|
||||
place. */
|
||||
|
||||
if (TYPE_IS_OPAQUE (type)
|
||||
&& opaque_type_resolution
|
||||
if (TYPE_IS_OPAQUE (type)
|
||||
&& opaque_type_resolution
|
||||
&& !currently_reading_symtab)
|
||||
{
|
||||
const char *name = type->name ();
|
||||
@@ -3326,7 +3326,7 @@ check_stub_method (struct type *type, int method_id, int signature_id)
|
||||
p = NULL;
|
||||
|
||||
if (demangled_name == NULL || p == NULL)
|
||||
error (_("Internal: Cannot demangle mangled name `%s'."),
|
||||
error (_("Internal: Cannot demangle mangled name `%s'."),
|
||||
mangled_name);
|
||||
|
||||
/* Now, read in the parameters that define this type. */
|
||||
@@ -4311,7 +4311,7 @@ types_equal (struct type *a, struct type *b)
|
||||
|
||||
if (a->num_fields () != b->num_fields ())
|
||||
return false;
|
||||
|
||||
|
||||
if (!types_equal (a->target_type (), b->target_type ()))
|
||||
return false;
|
||||
|
||||
@@ -5236,7 +5236,7 @@ recursive_dump_type (struct type *type, int spaces)
|
||||
struct type **first_dont_print
|
||||
= (struct type **) obstack_base (&dont_print_type_obstack);
|
||||
|
||||
int i = (struct type **)
|
||||
int i = (struct type **)
|
||||
obstack_next_free (&dont_print_type_obstack) - first_dont_print;
|
||||
|
||||
while (--i >= 0)
|
||||
@@ -5281,7 +5281,7 @@ recursive_dump_type (struct type *type, int spaces)
|
||||
host_address_to_string (TYPE_REFERENCE_TYPE (type)));
|
||||
gdb_printf ("%*stype_chain %s\n", spaces, "",
|
||||
host_address_to_string (TYPE_CHAIN (type)));
|
||||
gdb_printf ("%*sinstance_flags 0x%x", spaces, "",
|
||||
gdb_printf ("%*sinstance_flags 0x%x", spaces, "",
|
||||
(unsigned) type->instance_flags ());
|
||||
if (TYPE_CONST (type))
|
||||
{
|
||||
|
||||
@@ -995,7 +995,7 @@ struct main_type
|
||||
because we can allocate the space for a type before
|
||||
we know what to put in it. */
|
||||
|
||||
union
|
||||
union
|
||||
{
|
||||
struct field *fields;
|
||||
|
||||
@@ -1027,7 +1027,7 @@ struct main_type
|
||||
|
||||
struct type
|
||||
{
|
||||
/* Get the type code of this type.
|
||||
/* Get the type code of this type.
|
||||
|
||||
Note that the code can be TYPE_CODE_TYPEDEF, so if you want the real
|
||||
type, you need to do `check_typedef (type)->code ()`. */
|
||||
@@ -1633,7 +1633,7 @@ struct fn_field
|
||||
const char *physname;
|
||||
|
||||
/* * The function type for the method.
|
||||
|
||||
|
||||
(This comment used to say "The return value of the method", but
|
||||
that's wrong. The function type is expected here, i.e. something
|
||||
with TYPE_CODE_METHOD, and *not* the return-value type). */
|
||||
@@ -2199,7 +2199,7 @@ extern const struct builtin_type *builtin_type (struct gdbarch *gdbarch);
|
||||
/* * Return the type table for the specified objfile. */
|
||||
|
||||
extern const struct builtin_type *builtin_type (struct objfile *objfile);
|
||||
|
||||
|
||||
/* Explicit floating-point formats. See "floatformat.h". */
|
||||
extern const struct floatformat *floatformats_ieee_half[BFD_ENDIAN_UNKNOWN];
|
||||
extern const struct floatformat *floatformats_ieee_single[BFD_ENDIAN_UNKNOWN];
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
/* See the comments for SKIP_SOLIB_RESOLVER at the top of infrun.c.
|
||||
This function:
|
||||
1) decides whether a PLT has sent us into the linker to resolve
|
||||
a function reference, and
|
||||
a function reference, and
|
||||
2) if so, tells us where to set a temporary breakpoint that will
|
||||
trigger when the dynamic linker is done. */
|
||||
|
||||
@@ -45,7 +45,7 @@ glibc_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
|
||||
the same objfile. If we are at the entry point of `fixup', then
|
||||
we set a breakpoint at the return address (at the top of the
|
||||
stack), and continue.
|
||||
|
||||
|
||||
It's kind of gross to do all these checks every time we're
|
||||
called, since they don't change once the executable has gotten
|
||||
started. But this is only a temporary hack --- upcoming versions
|
||||
@@ -72,4 +72,4 @@ glibc_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ struct gdb_mpz
|
||||
mpz_swap (m_val, from.m_val);
|
||||
}
|
||||
|
||||
|
||||
|
||||
gdb_mpz &operator= (const gdb_mpz &from)
|
||||
{
|
||||
mpz_set (m_val, from.m_val);
|
||||
|
||||
@@ -584,7 +584,7 @@ gnu_nat_target::make_proc (struct inf *inf, mach_port_t port, int tid)
|
||||
return proc;
|
||||
}
|
||||
|
||||
/* Frees PROC and any resources it uses, and returns the value of PROC's
|
||||
/* Frees PROC and any resources it uses, and returns the value of PROC's
|
||||
next field. */
|
||||
struct proc *
|
||||
gnu_nat_target::_proc_free (struct proc *proc)
|
||||
@@ -858,7 +858,7 @@ gnu_nat_target::inf_set_traced (struct inf *inf, int on)
|
||||
{
|
||||
if (on == inf->traced)
|
||||
return;
|
||||
|
||||
|
||||
if (inf->task && !inf->task->dead)
|
||||
/* Make it take effect immediately. */
|
||||
{
|
||||
@@ -3134,14 +3134,14 @@ The default value is \"off\"."),
|
||||
add_cmd ("pause", no_class, show_thread_default_pause_cmd, _("\
|
||||
Show whether new threads are suspended while gdb has control."),
|
||||
&show_thread_default_cmd_list);
|
||||
|
||||
|
||||
add_cmd ("run", class_run, set_thread_default_run_cmd, _("\
|
||||
Set whether new threads are allowed to run (once gdb has noticed them)."),
|
||||
&set_thread_default_cmd_list);
|
||||
add_cmd ("run", no_class, show_thread_default_run_cmd, _("\
|
||||
Show whether new threads are allowed to run (once gdb has noticed them)."),
|
||||
&show_thread_default_cmd_list);
|
||||
|
||||
|
||||
add_cmd ("detach-suspend-count", class_run, set_thread_default_detach_sc_cmd,
|
||||
_("Set the default detach-suspend-count value for new threads."),
|
||||
&set_thread_default_cmd_list);
|
||||
|
||||
@@ -337,7 +337,7 @@ gnuv3_rtti_type (struct value *value,
|
||||
+ vtable->embedded_offset ()).minsym;
|
||||
if (! vtable_symbol)
|
||||
return NULL;
|
||||
|
||||
|
||||
/* The symbol's demangled name should be something like "vtable for
|
||||
CLASS", where CLASS is the name of the run-time type of VALUE.
|
||||
If we didn't like this approach, we could instead look in the
|
||||
@@ -1189,14 +1189,14 @@ gnuv3_get_type_from_type_info (struct value *type_info_ptr)
|
||||
/* Determine if we are currently in a C++ thunk. If so, get the address
|
||||
of the routine we are thunking to and continue to there instead. */
|
||||
|
||||
static CORE_ADDR
|
||||
static CORE_ADDR
|
||||
gnuv3_skip_trampoline (const frame_info_ptr &frame, CORE_ADDR stop_pc)
|
||||
{
|
||||
CORE_ADDR real_stop_pc, method_stop_pc, func_addr;
|
||||
struct gdbarch *gdbarch = get_frame_arch (frame);
|
||||
struct obj_section *section;
|
||||
const char *thunk_name, *fn_name;
|
||||
|
||||
|
||||
real_stop_pc = gdbarch_skip_trampoline_code (gdbarch, frame, stop_pc);
|
||||
if (real_stop_pc == 0)
|
||||
real_stop_pc = stop_pc;
|
||||
|
||||
@@ -52,7 +52,7 @@ extern void supply_fpregset (struct regcache *regcache,
|
||||
const gdb_fpregset_t *fpregs);
|
||||
|
||||
/* Copy register values from GDB's register cache into
|
||||
the native target gregset/fpregset. If regno is -1,
|
||||
the native target gregset/fpregset. If regno is -1,
|
||||
copy all the registers. */
|
||||
|
||||
extern void fill_gregset (const struct regcache *regcache,
|
||||
|
||||
@@ -537,7 +537,7 @@ bkscm_print_block_syms_progress_smob (SCM self, SCM port,
|
||||
{
|
||||
struct compunit_symtab *cust;
|
||||
|
||||
gdbscm_printf (port, " %s",
|
||||
gdbscm_printf (port, " %s",
|
||||
i_smob->iter.which == GLOBAL_BLOCK
|
||||
? "global" : "static");
|
||||
if (i_smob->iter.idx != -1)
|
||||
|
||||
@@ -751,7 +751,7 @@ vlscm_convert_typed_value_from_scheme (const char *func_name,
|
||||
obj_arg_pos, func_name,
|
||||
&except_scm, gdbarch);
|
||||
}
|
||||
else if (gdbscm_is_bool (obj))
|
||||
else if (gdbscm_is_bool (obj))
|
||||
{
|
||||
if (type != NULL
|
||||
&& !is_integral_type (type))
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user