On Sun, 12 Apr 2020 at 07:12, Vincent Chen <vincent.c...@sifive.com> wrote: > > The XML packet could be supported by required architecture if the > architecture defines CONFIG_ACRH_SUPPORTS_GDB_XML
nitpick, I guess you missed rename here? CONFIG_HAVE_ARCH_KGDB_QXFER_PKT? -Sumit > and implement its own > arch_handle_qxfer_pkt(). Except for the arch_handle_qxfer_pkt(), the > architecture also needs to record the feature supported by gdb stub into > the arch_gdb_stub_feature, and these features will be reported to host gdb > when gdb stub receives the qSupported packet. > > Signed-off-by: Vincent Chen <vincent.c...@sifive.com> > --- > include/linux/kgdb.h | 11 +++++++++++ > kernel/debug/gdbstub.c | 13 +++++++++++++ > lib/Kconfig.kgdb | 5 +++++ > 3 files changed, 29 insertions(+) > > diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h > index b072aeb1fd78..414bef20a8f3 100644 > --- a/include/linux/kgdb.h > +++ b/include/linux/kgdb.h > @@ -177,6 +177,17 @@ kgdb_arch_handle_exception(int vector, int signo, int > err_code, > struct pt_regs *regs); > > /** > + * kgdb_arch_handle_qxfer_pkt - Handle architecture specific GDB XML > + * packets. > + * @remcom_in_buffer: The buffer of the packet we have read. > + * @remcom_out_buffer: The buffer of %BUFMAX bytes to write a packet > into. > + */ > + > +extern void > +kgdb_arch_handle_qxfer_pkt(char *remcom_in_buffer, > + char *remcom_out_buffer); > + > +/** > * kgdb_call_nmi_hook - Call kgdb_nmicallback() on the current CPU > * @ignored: This parameter is only here to match the prototype. > * > diff --git a/kernel/debug/gdbstub.c b/kernel/debug/gdbstub.c > index 4b280fc7dd67..a0617c883029 100644 > --- a/kernel/debug/gdbstub.c > +++ b/kernel/debug/gdbstub.c > @@ -792,6 +792,19 @@ static void gdb_cmd_query(struct kgdb_state *ks) > } > break; > #endif > +#ifdef CONFIG_HAVE_ARCH_KGDB_QXFER_PKT > + case 'S': > + if (!strncmp(remcom_in_buffer, "qSupported:", 11)) > + strcpy(remcom_out_buffer, kgdb_arch_gdb_stub_feature); > + break; > + case 'X': > + if (!strncmp(remcom_in_buffer, "qXfer:", 6)) > + kgdb_arch_handle_qxfer_pkt(remcom_in_buffer, > + remcom_out_buffer); > + break; > +#endif > + default: > + break; > } > } > > diff --git a/lib/Kconfig.kgdb b/lib/Kconfig.kgdb > index 933680b59e2d..d7f70335efaf 100644 > --- a/lib/Kconfig.kgdb > +++ b/lib/Kconfig.kgdb > @@ -3,6 +3,11 @@ > config HAVE_ARCH_KGDB > bool > > +# set if architecture has the its kgdb_arch_handle_qxfer_pkt > +# function to enable gdb stub to address XML packet sent from GDB. > +config HAVE_ARCH_KGDB_QXFER_PKT > + bool > + > menuconfig KGDB > bool "KGDB: kernel debugger" > depends on HAVE_ARCH_KGDB > -- > 2.7.4 > > > > _______________________________________________ > Kgdb-bugreport mailing list > Kgdb-bugreport@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport _______________________________________________ Kgdb-bugreport mailing list Kgdb-bugreport@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport