mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 06:45:56 +08:00
* 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.
This commit is contained in:
@ -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)
|
||||
{
|
||||
|
Reference in New Issue
Block a user