Preparation for new siginfo on Linux
First add new structure and function to allow architecture customization for the siginfo structure. 2016-01-15 Walfred Tedeschi <walfred.tedeschi@intel.com> gdb/ChangeLog: * linux-tdep.h (linux_siginfo_extra_field_values): New enum values. (linux_siginfo_extra_fields): New enum type. * linux-tdep.c (linux_get_siginfo_type_with_fields): New function. (linux_get_siginfo_type): Use new function.
This commit is contained in:
parent
93813b37c8
commit
43564574f1
3 changed files with 32 additions and 3 deletions
|
@ -1,3 +1,10 @@
|
|||
2016-02-02 Walfred Tedeschi <walfred.tedeschi@intel.com>
|
||||
|
||||
* linux-tdep.h (linux_siginfo_extra_field_values): New enum values.
|
||||
(linux_siginfo_extra_fields): New enum type.
|
||||
* linux-tdep.c (linux_get_siginfo_type_with_fields): New function.
|
||||
(linux_get_siginfo_type): Use new function.
|
||||
|
||||
2016-02-02 Walfred Tedeschi <walfred.tedeschi@intel.com>
|
||||
|
||||
* nat/amd64-linux-siginfo.c: New file.
|
||||
|
|
|
@ -243,11 +243,12 @@ get_linux_inferior_data (void)
|
|||
return info;
|
||||
}
|
||||
|
||||
/* This function is suitable for architectures that don't
|
||||
extend/override the standard siginfo structure. */
|
||||
/* This function is suitable for architectures that
|
||||
extend/override the standard siginfo in a specific way. */
|
||||
|
||||
static struct type *
|
||||
linux_get_siginfo_type (struct gdbarch *gdbarch)
|
||||
linux_get_siginfo_type_with_fields (struct gdbarch *gdbarch,
|
||||
linux_siginfo_extra_fields extra_fields)
|
||||
{
|
||||
struct linux_gdbarch_data *linux_gdbarch_data;
|
||||
struct type *int_type, *uint_type, *long_type, *void_ptr_type;
|
||||
|
@ -364,6 +365,15 @@ linux_get_siginfo_type (struct gdbarch *gdbarch)
|
|||
return siginfo_type;
|
||||
}
|
||||
|
||||
/* This function is suitable for architectures that don't
|
||||
extend/override the standard siginfo structure. */
|
||||
|
||||
static struct type *
|
||||
linux_get_siginfo_type (struct gdbarch *gdbarch)
|
||||
{
|
||||
return linux_get_siginfo_type_with_fields (gdbarch, 0);
|
||||
}
|
||||
|
||||
/* Return true if the target is running on uClinux instead of normal
|
||||
Linux kernel. */
|
||||
|
||||
|
|
|
@ -24,6 +24,18 @@
|
|||
|
||||
struct regcache;
|
||||
|
||||
/* Enum used to define the extra fields of the siginfo type used by an
|
||||
architecture. */
|
||||
enum linux_siginfo_extra_field_values
|
||||
{
|
||||
/* Add bound fields into the segmentation fault field. */
|
||||
LINUX_SIGINFO_FIELD_ADDR_BND = 1
|
||||
};
|
||||
|
||||
/* Defines a type for the values defined in linux_siginfo_extra_field_values. */
|
||||
DEF_ENUM_FLAGS_TYPE (enum linux_siginfo_extra_field_values,
|
||||
linux_siginfo_extra_fields);
|
||||
|
||||
typedef char *(*linux_collect_thread_registers_ftype) (const struct regcache *,
|
||||
ptid_t,
|
||||
bfd *, char *, int *,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue