mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-19 05:42:42 +08:00
gdb/
Fix 64-bit constants on 32-bit hosts. * dwarf2read.c (read_unsigned_leb128): Change declaration return type from unsigned long to ULONGEST. (read_signed_leb128): Change declaration return type from long to LONGEST. (dwarf2_const_value_attr): Change declaration parameter value from long to LONGEST. (dwarf2_compute_name): Change variable value from long to LONGEST. (read_unsigned_leb128): Change return type, variable result and some casts from unsigned long to ULONGEST. (read_signed_leb128): Change return type, variable result and some casts from long to LONGEST. (dwarf2_const_value_data, dwarf2_const_value_attr): Change parameter value from long to LONGEST. (dwarf2_const_value): Change variable value from long to LONGEST. * symmisc.c (print_symbol): Change SYMBOL_VALUE format strings to use plongest and hex_string. * symtab.h (struct general_symbol_info): Change ivalue from long to LONGEST, remove the comment. * tracepoint.c (validate_actionline, collect_symbol, scope_info): Change SYMBOL_VALUE format strings to use plongest and hex_string.
This commit is contained in:
@ -1,3 +1,27 @@
|
|||||||
|
2012-04-18 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
|
Fix 64-bit constants on 32-bit hosts.
|
||||||
|
* dwarf2read.c (read_unsigned_leb128): Change declaration return type
|
||||||
|
from unsigned long to ULONGEST.
|
||||||
|
(read_signed_leb128): Change declaration return type from long to
|
||||||
|
LONGEST.
|
||||||
|
(dwarf2_const_value_attr): Change declaration parameter value from long
|
||||||
|
to LONGEST.
|
||||||
|
(dwarf2_compute_name): Change variable value from long to LONGEST.
|
||||||
|
(read_unsigned_leb128): Change return type, variable result and some
|
||||||
|
casts from unsigned long to ULONGEST.
|
||||||
|
(read_signed_leb128): Change return type, variable result and some
|
||||||
|
casts from long to LONGEST.
|
||||||
|
(dwarf2_const_value_data, dwarf2_const_value_attr): Change parameter
|
||||||
|
value from long to LONGEST.
|
||||||
|
(dwarf2_const_value): Change variable value from long to LONGEST.
|
||||||
|
* symmisc.c (print_symbol): Change SYMBOL_VALUE format strings to use
|
||||||
|
plongest and hex_string.
|
||||||
|
* symtab.h (struct general_symbol_info): Change ivalue from long to
|
||||||
|
LONGEST, remove the comment.
|
||||||
|
* tracepoint.c (validate_actionline, collect_symbol, scope_info):
|
||||||
|
Change SYMBOL_VALUE format strings to use plongest and hex_string.
|
||||||
|
|
||||||
2012-04-18 Siddhesh Poyarekar <siddhesh@redhat.com>
|
2012-04-18 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||||
|
|
||||||
PR symtab/7259:
|
PR symtab/7259:
|
||||||
|
@ -957,9 +957,9 @@ static char *read_indirect_string (bfd *, gdb_byte *,
|
|||||||
const struct comp_unit_head *,
|
const struct comp_unit_head *,
|
||||||
unsigned int *);
|
unsigned int *);
|
||||||
|
|
||||||
static unsigned long read_unsigned_leb128 (bfd *, gdb_byte *, unsigned int *);
|
static ULONGEST read_unsigned_leb128 (bfd *, gdb_byte *, unsigned int *);
|
||||||
|
|
||||||
static long read_signed_leb128 (bfd *, gdb_byte *, unsigned int *);
|
static LONGEST read_signed_leb128 (bfd *, gdb_byte *, unsigned int *);
|
||||||
|
|
||||||
static gdb_byte *skip_leb128 (bfd *, gdb_byte *);
|
static gdb_byte *skip_leb128 (bfd *, gdb_byte *);
|
||||||
|
|
||||||
@ -1008,7 +1008,7 @@ static void dwarf2_const_value_attr (struct attribute *attr,
|
|||||||
struct type *type,
|
struct type *type,
|
||||||
const char *name,
|
const char *name,
|
||||||
struct obstack *obstack,
|
struct obstack *obstack,
|
||||||
struct dwarf2_cu *cu, long *value,
|
struct dwarf2_cu *cu, LONGEST *value,
|
||||||
gdb_byte **bytes,
|
gdb_byte **bytes,
|
||||||
struct dwarf2_locexpr_baton **baton);
|
struct dwarf2_locexpr_baton **baton);
|
||||||
|
|
||||||
@ -5146,7 +5146,7 @@ dwarf2_compute_name (char *name, struct die_info *die, struct dwarf2_cu *cu,
|
|||||||
for (child = die->child; child != NULL; child = child->sibling)
|
for (child = die->child; child != NULL; child = child->sibling)
|
||||||
{
|
{
|
||||||
struct type *type;
|
struct type *type;
|
||||||
long value;
|
LONGEST value;
|
||||||
gdb_byte *bytes;
|
gdb_byte *bytes;
|
||||||
struct dwarf2_locexpr_baton *baton;
|
struct dwarf2_locexpr_baton *baton;
|
||||||
struct value *v;
|
struct value *v;
|
||||||
@ -10664,10 +10664,10 @@ read_indirect_string (bfd *abfd, gdb_byte *buf,
|
|||||||
return read_indirect_string_at_offset (abfd, str_offset);
|
return read_indirect_string_at_offset (abfd, str_offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned long
|
static ULONGEST
|
||||||
read_unsigned_leb128 (bfd *abfd, gdb_byte *buf, unsigned int *bytes_read_ptr)
|
read_unsigned_leb128 (bfd *abfd, gdb_byte *buf, unsigned int *bytes_read_ptr)
|
||||||
{
|
{
|
||||||
unsigned long result;
|
ULONGEST result;
|
||||||
unsigned int num_read;
|
unsigned int num_read;
|
||||||
int i, shift;
|
int i, shift;
|
||||||
unsigned char byte;
|
unsigned char byte;
|
||||||
@ -10681,7 +10681,7 @@ read_unsigned_leb128 (bfd *abfd, gdb_byte *buf, unsigned int *bytes_read_ptr)
|
|||||||
byte = bfd_get_8 (abfd, buf);
|
byte = bfd_get_8 (abfd, buf);
|
||||||
buf++;
|
buf++;
|
||||||
num_read++;
|
num_read++;
|
||||||
result |= ((unsigned long)(byte & 127) << shift);
|
result |= ((ULONGEST) (byte & 127) << shift);
|
||||||
if ((byte & 128) == 0)
|
if ((byte & 128) == 0)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
@ -10692,10 +10692,10 @@ read_unsigned_leb128 (bfd *abfd, gdb_byte *buf, unsigned int *bytes_read_ptr)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static long
|
static LONGEST
|
||||||
read_signed_leb128 (bfd *abfd, gdb_byte *buf, unsigned int *bytes_read_ptr)
|
read_signed_leb128 (bfd *abfd, gdb_byte *buf, unsigned int *bytes_read_ptr)
|
||||||
{
|
{
|
||||||
long result;
|
LONGEST result;
|
||||||
int i, shift, num_read;
|
int i, shift, num_read;
|
||||||
unsigned char byte;
|
unsigned char byte;
|
||||||
|
|
||||||
@ -10708,7 +10708,7 @@ read_signed_leb128 (bfd *abfd, gdb_byte *buf, unsigned int *bytes_read_ptr)
|
|||||||
byte = bfd_get_8 (abfd, buf);
|
byte = bfd_get_8 (abfd, buf);
|
||||||
buf++;
|
buf++;
|
||||||
num_read++;
|
num_read++;
|
||||||
result |= ((long)(byte & 127) << shift);
|
result |= ((LONGEST) (byte & 127) << shift);
|
||||||
shift += 7;
|
shift += 7;
|
||||||
if ((byte & 128) == 0)
|
if ((byte & 128) == 0)
|
||||||
{
|
{
|
||||||
@ -10716,7 +10716,7 @@ read_signed_leb128 (bfd *abfd, gdb_byte *buf, unsigned int *bytes_read_ptr)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((shift < 8 * sizeof (result)) && (byte & 0x40))
|
if ((shift < 8 * sizeof (result)) && (byte & 0x40))
|
||||||
result |= -(((long)1) << shift);
|
result |= -(((LONGEST) 1) << shift);
|
||||||
*bytes_read_ptr = num_read;
|
*bytes_read_ptr = num_read;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -12041,7 +12041,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
|
|||||||
static gdb_byte *
|
static gdb_byte *
|
||||||
dwarf2_const_value_data (struct attribute *attr, struct type *type,
|
dwarf2_const_value_data (struct attribute *attr, struct type *type,
|
||||||
const char *name, struct obstack *obstack,
|
const char *name, struct obstack *obstack,
|
||||||
struct dwarf2_cu *cu, long *value, int bits)
|
struct dwarf2_cu *cu, LONGEST *value, int bits)
|
||||||
{
|
{
|
||||||
struct objfile *objfile = cu->objfile;
|
struct objfile *objfile = cu->objfile;
|
||||||
enum bfd_endian byte_order = bfd_big_endian (objfile->obfd) ?
|
enum bfd_endian byte_order = bfd_big_endian (objfile->obfd) ?
|
||||||
@ -12075,7 +12075,7 @@ static void
|
|||||||
dwarf2_const_value_attr (struct attribute *attr, struct type *type,
|
dwarf2_const_value_attr (struct attribute *attr, struct type *type,
|
||||||
const char *name, struct obstack *obstack,
|
const char *name, struct obstack *obstack,
|
||||||
struct dwarf2_cu *cu,
|
struct dwarf2_cu *cu,
|
||||||
long *value, gdb_byte **bytes,
|
LONGEST *value, gdb_byte **bytes,
|
||||||
struct dwarf2_locexpr_baton **baton)
|
struct dwarf2_locexpr_baton **baton)
|
||||||
{
|
{
|
||||||
struct objfile *objfile = cu->objfile;
|
struct objfile *objfile = cu->objfile;
|
||||||
@ -12182,7 +12182,7 @@ dwarf2_const_value (struct attribute *attr, struct symbol *sym,
|
|||||||
{
|
{
|
||||||
struct objfile *objfile = cu->objfile;
|
struct objfile *objfile = cu->objfile;
|
||||||
struct comp_unit_head *cu_header = &cu->header;
|
struct comp_unit_head *cu_header = &cu->header;
|
||||||
long value;
|
LONGEST value;
|
||||||
gdb_byte *bytes;
|
gdb_byte *bytes;
|
||||||
struct dwarf2_locexpr_baton *baton;
|
struct dwarf2_locexpr_baton *baton;
|
||||||
|
|
||||||
|
@ -509,9 +509,9 @@ print_symbol (void *args)
|
|||||||
switch (SYMBOL_CLASS (symbol))
|
switch (SYMBOL_CLASS (symbol))
|
||||||
{
|
{
|
||||||
case LOC_CONST:
|
case LOC_CONST:
|
||||||
fprintf_filtered (outfile, "const %ld (0x%lx)",
|
fprintf_filtered (outfile, "const %s (%s)",
|
||||||
SYMBOL_VALUE (symbol),
|
plongest (SYMBOL_VALUE (symbol)),
|
||||||
SYMBOL_VALUE (symbol));
|
hex_string (SYMBOL_VALUE (symbol)));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LOC_CONST_BYTES:
|
case LOC_CONST_BYTES:
|
||||||
@ -539,28 +539,31 @@ print_symbol (void *args)
|
|||||||
|
|
||||||
case LOC_REGISTER:
|
case LOC_REGISTER:
|
||||||
if (SYMBOL_IS_ARGUMENT (symbol))
|
if (SYMBOL_IS_ARGUMENT (symbol))
|
||||||
fprintf_filtered (outfile, "parameter register %ld",
|
fprintf_filtered (outfile, "parameter register %s",
|
||||||
SYMBOL_VALUE (symbol));
|
plongest (SYMBOL_VALUE (symbol)));
|
||||||
else
|
else
|
||||||
fprintf_filtered (outfile, "register %ld", SYMBOL_VALUE (symbol));
|
fprintf_filtered (outfile, "register %s",
|
||||||
|
plongest (SYMBOL_VALUE (symbol)));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LOC_ARG:
|
case LOC_ARG:
|
||||||
fprintf_filtered (outfile, "arg at offset 0x%lx",
|
fprintf_filtered (outfile, "arg at offset %s",
|
||||||
SYMBOL_VALUE (symbol));
|
hex_string (SYMBOL_VALUE (symbol)));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LOC_REF_ARG:
|
case LOC_REF_ARG:
|
||||||
fprintf_filtered (outfile, "reference arg at 0x%lx", SYMBOL_VALUE (symbol));
|
fprintf_filtered (outfile, "reference arg at %s",
|
||||||
|
hex_string (SYMBOL_VALUE (symbol)));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LOC_REGPARM_ADDR:
|
case LOC_REGPARM_ADDR:
|
||||||
fprintf_filtered (outfile, "address parameter register %ld", SYMBOL_VALUE (symbol));
|
fprintf_filtered (outfile, "address parameter register %s",
|
||||||
|
plongest (SYMBOL_VALUE (symbol)));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LOC_LOCAL:
|
case LOC_LOCAL:
|
||||||
fprintf_filtered (outfile, "local at offset 0x%lx",
|
fprintf_filtered (outfile, "local at offset %s",
|
||||||
SYMBOL_VALUE (symbol));
|
hex_string (SYMBOL_VALUE (symbol)));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LOC_TYPEDEF:
|
case LOC_TYPEDEF:
|
||||||
|
@ -109,10 +109,7 @@ struct general_symbol_info
|
|||||||
|
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
/* The fact that this is a long not a LONGEST mainly limits the
|
LONGEST ivalue;
|
||||||
range of a LOC_CONST. Since LOC_CONST_BYTES exists, I'm not
|
|
||||||
sure that is a big deal. */
|
|
||||||
long ivalue;
|
|
||||||
|
|
||||||
struct block *block;
|
struct block *block;
|
||||||
|
|
||||||
|
@ -740,10 +740,10 @@ validate_actionline (char **line, struct breakpoint *b)
|
|||||||
{
|
{
|
||||||
if (SYMBOL_CLASS (exp->elts[2].symbol) == LOC_CONST)
|
if (SYMBOL_CLASS (exp->elts[2].symbol) == LOC_CONST)
|
||||||
{
|
{
|
||||||
error (_("constant `%s' (value %ld) "
|
error (_("constant `%s' (value %s) "
|
||||||
"will not be collected."),
|
"will not be collected."),
|
||||||
SYMBOL_PRINT_NAME (exp->elts[2].symbol),
|
SYMBOL_PRINT_NAME (exp->elts[2].symbol),
|
||||||
SYMBOL_VALUE (exp->elts[2].symbol));
|
plongest (SYMBOL_VALUE (exp->elts[2].symbol)));
|
||||||
}
|
}
|
||||||
else if (SYMBOL_CLASS (exp->elts[2].symbol)
|
else if (SYMBOL_CLASS (exp->elts[2].symbol)
|
||||||
== LOC_OPTIMIZED_OUT)
|
== LOC_OPTIMIZED_OUT)
|
||||||
@ -980,8 +980,8 @@ collect_symbol (struct collection_list *collect,
|
|||||||
SYMBOL_CLASS (sym));
|
SYMBOL_CLASS (sym));
|
||||||
break;
|
break;
|
||||||
case LOC_CONST:
|
case LOC_CONST:
|
||||||
printf_filtered ("constant %s (value %ld) will not be collected.\n",
|
printf_filtered ("constant %s (value %s) will not be collected.\n",
|
||||||
SYMBOL_PRINT_NAME (sym), SYMBOL_VALUE (sym));
|
SYMBOL_PRINT_NAME (sym), plongest (SYMBOL_VALUE (sym)));
|
||||||
break;
|
break;
|
||||||
case LOC_STATIC:
|
case LOC_STATIC:
|
||||||
offset = SYMBOL_VALUE_ADDRESS (sym);
|
offset = SYMBOL_VALUE_ADDRESS (sym);
|
||||||
@ -2623,8 +2623,9 @@ scope_info (char *args, int from_tty)
|
|||||||
count--; /* Don't count this one. */
|
count--; /* Don't count this one. */
|
||||||
continue;
|
continue;
|
||||||
case LOC_CONST:
|
case LOC_CONST:
|
||||||
printf_filtered ("a constant with value %ld (0x%lx)",
|
printf_filtered ("a constant with value %s (%s)",
|
||||||
SYMBOL_VALUE (sym), SYMBOL_VALUE (sym));
|
plongest (SYMBOL_VALUE (sym)),
|
||||||
|
hex_string (SYMBOL_VALUE (sym)));
|
||||||
break;
|
break;
|
||||||
case LOC_CONST_BYTES:
|
case LOC_CONST_BYTES:
|
||||||
printf_filtered ("constant bytes: ");
|
printf_filtered ("constant bytes: ");
|
||||||
@ -2657,16 +2658,16 @@ scope_info (char *args, int from_tty)
|
|||||||
gdbarch_register_name (gdbarch, regno));
|
gdbarch_register_name (gdbarch, regno));
|
||||||
break;
|
break;
|
||||||
case LOC_ARG:
|
case LOC_ARG:
|
||||||
printf_filtered ("an argument at stack/frame offset %ld",
|
printf_filtered ("an argument at stack/frame offset %s",
|
||||||
SYMBOL_VALUE (sym));
|
plongest (SYMBOL_VALUE (sym)));
|
||||||
break;
|
break;
|
||||||
case LOC_LOCAL:
|
case LOC_LOCAL:
|
||||||
printf_filtered ("a local variable at frame offset %ld",
|
printf_filtered ("a local variable at frame offset %s",
|
||||||
SYMBOL_VALUE (sym));
|
plongest (SYMBOL_VALUE (sym)));
|
||||||
break;
|
break;
|
||||||
case LOC_REF_ARG:
|
case LOC_REF_ARG:
|
||||||
printf_filtered ("a reference argument at offset %ld",
|
printf_filtered ("a reference argument at offset %s",
|
||||||
SYMBOL_VALUE (sym));
|
plongest (SYMBOL_VALUE (sym)));
|
||||||
break;
|
break;
|
||||||
case LOC_REGPARM_ADDR:
|
case LOC_REGPARM_ADDR:
|
||||||
/* Note comment at LOC_REGISTER. */
|
/* Note comment at LOC_REGISTER. */
|
||||||
|
Reference in New Issue
Block a user