aboutsummaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
authorDavid Taylor <dtaylor@emc.com>2016-04-12 15:02:57 -0400
committerDavid Taylor <david.taylor@emc.com>2016-06-24 21:02:36 -0400
commit6b8505468e64c2be8d0eea1f2b8db86fa3897600 (patch)
tree81de3154cfc05d9811239c11ef05cbb3a6fec06d /gdb/python
parente0204c4d4ceb9be0b0ccf8f92ab683aab54f67cd (diff)
downloadgdb-6b8505468e64c2be8d0eea1f2b8db86fa3897600.zip
gdb-6b8505468e64c2be8d0eea1f2b8db86fa3897600.tar.gz
gdb-6b8505468e64c2be8d0eea1f2b8db86fa3897600.tar.bz2
Support structure offsets that are 512K or larger.
GDB computes structure byte offsets using a 32 bit integer. And, first it computes the offset in bits and then converts to bytes. The result is that any offset that if 512K bytes or larger overflows. This patch changes GDB to use LONGEST for such calculations. PR gdb/17520 Structure offset wrong when 1/4 GB or greater. * c-lang.h: Change all parameters, variables, and struct or union members used as struct or union fie3ld offsets from int to LONGEST. * c-valprint.c: Likewise. * cp-abi.c: Likewise. * cp-abi.h: Likewise. * cp-valprint.c: Likewise. * d-valprint.c: Likewise. * dwarf2loc.c: Likewise. * eval.c: Likewise. * extension-priv.h: Likewise. * extension.c: Likewise. * extension.h: Likewise. * findvar.c: Likewise. * gdbtypes.h: Likewise. * gnu-v2-abi.c: Likewise. * gnu-v3-abi.c: Likewise. * go-valprint.c: Likewise. * guile/guile-internal.h: Likewise. * guile/scm-pretty-print.c: Likewise. * jv-valprint.c Likewise. * opencl-lang.c: Likewise. * p-lang.h: Likewise. * python/py-prettyprint.c: Likewise. * python/python-internal.h: Likewise. * spu-tdep.c: Likewise. * typeprint.c: Likewise. * valarith.c: Likewise. * valops.c: Likewise. * valprint.c: Likewise. * valprint.h: Likewise. * value.c: Likewise. * value.h: Likewise. * p-valprint.c: Likewise. * c-typeprint.c (c_type_print_base): When printing offset, use plongest, not %d. * gdbtypes.c (recursive_dump_type): Ditto.
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/py-prettyprint.c2
-rw-r--r--gdb/python/python-internal.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/gdb/python/py-prettyprint.c b/gdb/python/py-prettyprint.c
index e97769b..8834344 100644
--- a/gdb/python/py-prettyprint.c
+++ b/gdb/python/py-prettyprint.c
@@ -703,7 +703,7 @@ print_children (PyObject *printer, const char *hint,
enum ext_lang_rc
gdbpy_apply_val_pretty_printer (const struct extension_language_defn *extlang,
struct type *type, const gdb_byte *valaddr,
- int embedded_offset, CORE_ADDR address,
+ LONGEST embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *val,
const struct value_print_options *options,
diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
index 7eb9aa4..8545c7b 100644
--- a/gdb/python/python-internal.h
+++ b/gdb/python/python-internal.h
@@ -316,7 +316,7 @@ extern int gdbpy_auto_load_enabled (const struct extension_language_defn *);
extern enum ext_lang_rc gdbpy_apply_val_pretty_printer
(const struct extension_language_defn *,
struct type *type, const gdb_byte *valaddr,
- int embedded_offset, CORE_ADDR address,
+ LONGEST embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse,
const struct value *val,
const struct value_print_options *options,