This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 0/3 v3] [AArch64] Support tagged pointer
On 11 April 2018 at 23:27, Pedro Alves <palves@redhat.com> wrote:
> On 04/11/2018 12:59 PM, Omair Javaid wrote:
>
> > Yes I can submit a patch that enables set_gdbarch_significant_addr_bit
> for aarch64-linux-tdep only.
> >
> > But a point to discuss here is the use-case where some people use
> *-linux-gdb for debugging seamlessly between kernel and user-space.
> >
> > There can be ways we can distinguish between user/kernel address space
> and clear or set top byte of the address even in case of linux targets.
> >
> > Does this sound something we should do?
>
> Yeah, why not.
>
> What are the pending kernel debugging patches using to distinguish
> userspace and kernel debugging modes? Off hand, I'd think we'd want to
> make those separate ABIs / osabis / gdbarchs.
>
Sorry for late reply on this I am out of office this week.
I have given this a thought and I propose to do the following:
Turn on pointer tagging on OSABI (LINUX) by default.
Add commands set aarch64 pointer-tagging show/enable/disable.
Once LKD patches for aarch64/arm land in our need for this will
automatically be solved.
^ Does this make sense?
For Linux Kernel Debugging we have separate OSABI (LINUX_KERNEL). Patch
snippet from LKD patches by Phillip given below:
+static enum gdb_osabi
+s390_lk_osabi_sniffer (bfd *abfd)
+{
+ if (bfd_get_section_by_name (abfd, ".reg-s390-prefix")
+ || bfd_get_section_by_name (abfd, "__ksymtab"))
+ return GDB_OSABI_LINUX_KERNEL;
+
+ return GDB_OSABI_UNKNOWN;
+}
+
+extern initialize_file_ftype _initialize_s390_lk_tdep; /*
-Wmissing-prototypes */
+
+void
+_initialize_s390_lk_tdep (void)
+{
+ /* Hook us into the OSABI mechanism. */
+ gdbarch_register_osabi (bfd_arch_s390, bfd_mach_s390_64,
GDB_OSABI_LINUX_KERNEL,
+ s390_lk_init_abi_64);
+ /* Add OSABI sniffer. */
+ gdbarch_register_osabi_sniffer (bfd_arch_s390, bfd_target_elf_flavour,
+ s390_lk_osabi_sniffer);
+
+ /* Initialize the Linux kernel target descriptions. */
+ initialize_tdesc_s390x_cr_linux64 ();
+ initialize_tdesc_s390x_vxcr_linux64 ();
+}
Thanks,
> Pedro Alves
>