diff options
author | Peter Schauer <Peter.Schauer@mytum.de> | 1996-02-03 11:32:34 +0000 |
---|---|---|
committer | Peter Schauer <Peter.Schauer@mytum.de> | 1996-02-03 11:32:34 +0000 |
commit | 255181a9ed97f7f2d8a283bc48e5b3f9f324beb8 (patch) | |
tree | b1be7f543a0a4d4d2718423ca80bb5b3798f87ef /gdb/dwarfread.c | |
parent | c2b6884b9717eb48570f4e602b09f70ce9744aa4 (diff) | |
download | gdb-255181a9ed97f7f2d8a283bc48e5b3f9f324beb8.zip gdb-255181a9ed97f7f2d8a283bc48e5b3f9f324beb8.tar.gz gdb-255181a9ed97f7f2d8a283bc48e5b3f9f324beb8.tar.bz2 |
* dwarfread.c (read_func_scope): Avoid GDB core dumps if
AT_name tag is missing.
* procfs.c (procfs_stopped_by_watchpoint): Fix logic when
FLTWATCH and FLTKWATCH are defined.
* remote.c (remote_read_bytes): Advance memaddr for transfers,
return number of bytes transferred for partial reads.
* top.c (init_signals): Reset SIGTRAP to SIG_DFL.
Diffstat (limited to 'gdb/dwarfread.c')
-rw-r--r-- | gdb/dwarfread.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gdb/dwarfread.c b/gdb/dwarfread.c index fa7c9a2..3d034e1 100644 --- a/gdb/dwarfread.c +++ b/gdb/dwarfread.c @@ -170,6 +170,11 @@ struct complaint not_row_major = "DIE @ 0x%x \"%s\", array not row major; not handled correctly", 0, 0 }; +struct complaint missing_at_name = +{ + "DIE @ 0x%x, AT_name tag missing", 0, 0 +}; + typedef unsigned int DIE_REF; /* Reference to a DIE */ #ifndef GCC_PRODUCER @@ -1807,6 +1812,16 @@ read_func_scope (dip, thisdie, enddie, objfile) { register struct context_stack *new; + /* AT_name is absent if the function is described with an + AT_abstract_origin tag. + Ignore the function description for now to avoid GDB core dumps. + FIXME: Add code to handle AT_abstract_origin tags properly. */ + if (dip -> at_name == NULL) + { + complain (&missing_at_name, DIE_ID); + return; + } + if (objfile -> ei.entry_point >= dip -> at_low_pc && objfile -> ei.entry_point < dip -> at_high_pc) { |