mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-20 01:50:24 +08:00
gdb: Add aliases for read_core_file_mappings callbacks
Add aliases read_core_file_mappings_loop_ftype and read_core_file_mappings_pre_loop_ftype. Intended for use with read_core_file_mappings. Also add build_id parameter to read_core_file_mappings_loop_ftype.
This commit is contained in:
@ -1075,16 +1075,11 @@ default_get_pc_address_flags (frame_info *frame, CORE_ADDR pc)
|
|||||||
|
|
||||||
/* See arch-utils.h. */
|
/* See arch-utils.h. */
|
||||||
void
|
void
|
||||||
default_read_core_file_mappings (struct gdbarch *gdbarch,
|
default_read_core_file_mappings
|
||||||
|
(struct gdbarch *gdbarch,
|
||||||
struct bfd *cbfd,
|
struct bfd *cbfd,
|
||||||
gdb::function_view<void (ULONGEST count)>
|
read_core_file_mappings_pre_loop_ftype pre_loop_cb,
|
||||||
pre_loop_cb,
|
read_core_file_mappings_loop_ftype loop_cb)
|
||||||
gdb::function_view<void (int num,
|
|
||||||
ULONGEST start,
|
|
||||||
ULONGEST end,
|
|
||||||
ULONGEST file_ofs,
|
|
||||||
const char *filename)>
|
|
||||||
loop_cb)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -295,14 +295,9 @@ extern std::string default_get_pc_address_flags (frame_info *frame,
|
|||||||
CORE_ADDR pc);
|
CORE_ADDR pc);
|
||||||
|
|
||||||
/* Default implementation of gdbarch read_core_file_mappings method. */
|
/* Default implementation of gdbarch read_core_file_mappings method. */
|
||||||
extern void default_read_core_file_mappings (struct gdbarch *gdbarch,
|
extern void default_read_core_file_mappings
|
||||||
|
(struct gdbarch *gdbarch,
|
||||||
struct bfd *cbfd,
|
struct bfd *cbfd,
|
||||||
gdb::function_view<void (ULONGEST count)>
|
read_core_file_mappings_pre_loop_ftype pre_loop_cb,
|
||||||
pre_loop_cb,
|
read_core_file_mappings_loop_ftype loop_cb);
|
||||||
gdb::function_view<void (int num,
|
|
||||||
ULONGEST start,
|
|
||||||
ULONGEST end,
|
|
||||||
ULONGEST file_ofs,
|
|
||||||
const char *filename)>
|
|
||||||
loop_cb);
|
|
||||||
#endif /* ARCH_UTILS_H */
|
#endif /* ARCH_UTILS_H */
|
||||||
|
@ -214,7 +214,7 @@ core_target::build_file_mappings ()
|
|||||||
/* read_core_file_mappings will invoke this lambda for each mapping
|
/* read_core_file_mappings will invoke this lambda for each mapping
|
||||||
that it finds. */
|
that it finds. */
|
||||||
[&] (int num, ULONGEST start, ULONGEST end, ULONGEST file_ofs,
|
[&] (int num, ULONGEST start, ULONGEST end, ULONGEST file_ofs,
|
||||||
const char *filename)
|
const char *filename, const bfd_build_id *build_id)
|
||||||
{
|
{
|
||||||
/* Architecture-specific read_core_mapping methods are expected to
|
/* Architecture-specific read_core_mapping methods are expected to
|
||||||
weed out non-file-backed mappings. */
|
weed out non-file-backed mappings. */
|
||||||
|
@ -5411,7 +5411,7 @@ set_gdbarch_get_pc_address_flags (struct gdbarch *gdbarch,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
gdbarch_read_core_file_mappings (struct gdbarch *gdbarch, struct bfd *cbfd, gdb::function_view<void (ULONGEST count)> pre_loop_cb, gdb::function_view<void (int num, ULONGEST start, ULONGEST end, ULONGEST file_ofs, const char *filename)> loop_cb)
|
gdbarch_read_core_file_mappings (struct gdbarch *gdbarch, struct bfd *cbfd, read_core_file_mappings_pre_loop_ftype pre_loop_cb, read_core_file_mappings_loop_ftype loop_cb)
|
||||||
{
|
{
|
||||||
gdb_assert (gdbarch != NULL);
|
gdb_assert (gdbarch != NULL);
|
||||||
gdb_assert (gdbarch->read_core_file_mappings != NULL);
|
gdb_assert (gdbarch->read_core_file_mappings != NULL);
|
||||||
|
@ -131,6 +131,18 @@ enum class memtag_type
|
|||||||
allocation,
|
allocation,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Callback types for 'read_core_file_mappings' gdbarch method. */
|
||||||
|
|
||||||
|
using read_core_file_mappings_pre_loop_ftype =
|
||||||
|
gdb::function_view<void (ULONGEST count)>;
|
||||||
|
|
||||||
|
using read_core_file_mappings_loop_ftype =
|
||||||
|
gdb::function_view<void (int num,
|
||||||
|
ULONGEST start,
|
||||||
|
ULONGEST end,
|
||||||
|
ULONGEST file_ofs,
|
||||||
|
const char *filename,
|
||||||
|
const bfd_build_id *build_id)>;
|
||||||
|
|
||||||
|
|
||||||
/* The following are pre-initialized by GDBARCH. */
|
/* The following are pre-initialized by GDBARCH. */
|
||||||
@ -1712,8 +1724,8 @@ extern void set_gdbarch_get_pc_address_flags (struct gdbarch *gdbarch, gdbarch_g
|
|||||||
|
|
||||||
/* Read core file mappings */
|
/* Read core file mappings */
|
||||||
|
|
||||||
typedef void (gdbarch_read_core_file_mappings_ftype) (struct gdbarch *gdbarch, struct bfd *cbfd, gdb::function_view<void (ULONGEST count)> pre_loop_cb, gdb::function_view<void (int num, ULONGEST start, ULONGEST end, ULONGEST file_ofs, const char *filename)> loop_cb);
|
typedef void (gdbarch_read_core_file_mappings_ftype) (struct gdbarch *gdbarch, struct bfd *cbfd, read_core_file_mappings_pre_loop_ftype pre_loop_cb, read_core_file_mappings_loop_ftype loop_cb);
|
||||||
extern void gdbarch_read_core_file_mappings (struct gdbarch *gdbarch, struct bfd *cbfd, gdb::function_view<void (ULONGEST count)> pre_loop_cb, gdb::function_view<void (int num, ULONGEST start, ULONGEST end, ULONGEST file_ofs, const char *filename)> loop_cb);
|
extern void gdbarch_read_core_file_mappings (struct gdbarch *gdbarch, struct bfd *cbfd, read_core_file_mappings_pre_loop_ftype pre_loop_cb, read_core_file_mappings_loop_ftype loop_cb);
|
||||||
extern void set_gdbarch_read_core_file_mappings (struct gdbarch *gdbarch, gdbarch_read_core_file_mappings_ftype *read_core_file_mappings);
|
extern void set_gdbarch_read_core_file_mappings (struct gdbarch *gdbarch, gdbarch_read_core_file_mappings_ftype *read_core_file_mappings);
|
||||||
|
|
||||||
extern struct gdbarch_tdep *gdbarch_tdep (struct gdbarch *gdbarch);
|
extern struct gdbarch_tdep *gdbarch_tdep (struct gdbarch *gdbarch);
|
||||||
|
@ -1210,7 +1210,7 @@ m;ULONGEST;type_align;struct type *type;type;;default_type_align;;0
|
|||||||
f;std::string;get_pc_address_flags;frame_info *frame, CORE_ADDR pc;frame, pc;;default_get_pc_address_flags;;0
|
f;std::string;get_pc_address_flags;frame_info *frame, CORE_ADDR pc;frame, pc;;default_get_pc_address_flags;;0
|
||||||
|
|
||||||
# Read core file mappings
|
# Read core file mappings
|
||||||
m;void;read_core_file_mappings;struct bfd *cbfd, gdb::function_view<void (ULONGEST count)> pre_loop_cb, gdb::function_view<void (int num, ULONGEST start, ULONGEST end, ULONGEST file_ofs, const char *filename)> loop_cb;cbfd, pre_loop_cb, loop_cb;;default_read_core_file_mappings;;0
|
m;void;read_core_file_mappings;struct bfd *cbfd, read_core_file_mappings_pre_loop_ftype pre_loop_cb, read_core_file_mappings_loop_ftype loop_cb;cbfd, pre_loop_cb, loop_cb;;default_read_core_file_mappings;;0
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
@ -1402,6 +1402,18 @@ enum class memtag_type
|
|||||||
allocation,
|
allocation,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Callback types for 'read_core_file_mappings' gdbarch method. */
|
||||||
|
|
||||||
|
using read_core_file_mappings_pre_loop_ftype =
|
||||||
|
gdb::function_view<void (ULONGEST count)>;
|
||||||
|
|
||||||
|
using read_core_file_mappings_loop_ftype =
|
||||||
|
gdb::function_view<void (int num,
|
||||||
|
ULONGEST start,
|
||||||
|
ULONGEST end,
|
||||||
|
ULONGEST file_ofs,
|
||||||
|
const char *filename,
|
||||||
|
const bfd_build_id *build_id)>;
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# function typedef's
|
# function typedef's
|
||||||
|
@ -1097,16 +1097,11 @@ linux_info_proc (struct gdbarch *gdbarch, const char *args,
|
|||||||
for each mapping. */
|
for each mapping. */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
linux_read_core_file_mappings (struct gdbarch *gdbarch,
|
linux_read_core_file_mappings
|
||||||
|
(struct gdbarch *gdbarch,
|
||||||
struct bfd *cbfd,
|
struct bfd *cbfd,
|
||||||
gdb::function_view<void (ULONGEST count)>
|
read_core_file_mappings_pre_loop_ftype pre_loop_cb,
|
||||||
pre_loop_cb,
|
read_core_file_mappings_loop_ftype loop_cb)
|
||||||
gdb::function_view<void (int num,
|
|
||||||
ULONGEST start,
|
|
||||||
ULONGEST end,
|
|
||||||
ULONGEST file_ofs,
|
|
||||||
const char *filename)>
|
|
||||||
loop_cb)
|
|
||||||
{
|
{
|
||||||
/* Ensure that ULONGEST is big enough for reading 64-bit core files. */
|
/* Ensure that ULONGEST is big enough for reading 64-bit core files. */
|
||||||
gdb_static_assert (sizeof (ULONGEST) >= 8);
|
gdb_static_assert (sizeof (ULONGEST) >= 8);
|
||||||
@ -1189,7 +1184,7 @@ linux_read_core_file_mappings (struct gdbarch *gdbarch,
|
|||||||
char * filename = filenames;
|
char * filename = filenames;
|
||||||
filenames += strlen ((char *) filenames) + 1;
|
filenames += strlen ((char *) filenames) + 1;
|
||||||
|
|
||||||
loop_cb (i, start, end, file_ofs, filename);
|
loop_cb (i, start, end, file_ofs, filename, nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1218,7 +1213,7 @@ linux_core_info_proc_mappings (struct gdbarch *gdbarch, const char *args)
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
[=] (int num, ULONGEST start, ULONGEST end, ULONGEST file_ofs,
|
[=] (int num, ULONGEST start, ULONGEST end, ULONGEST file_ofs,
|
||||||
const char *filename)
|
const char *filename, const bfd_build_id *build_id)
|
||||||
{
|
{
|
||||||
if (gdbarch_addr_bit (gdbarch) == 32)
|
if (gdbarch_addr_bit (gdbarch) == 32)
|
||||||
printf_filtered ("\t%10s %10s %10s %10s %s\n",
|
printf_filtered ("\t%10s %10s %10s %10s %s\n",
|
||||||
|
Reference in New Issue
Block a user