Hi, Alexey Sorry for the late reply. And also thank you for the update. At present, I'm looking at this patchset, but I have to say that this is a big one, I will take some time to understand these changes and think more about this. And I will provide feedback ASAP. Thanks. Lianbo 在 2020年12月29日 18:06, crash-utility-request@xxxxxxxxxx 写道: > Date: Tue, 29 Dec 2020 02:06:08 -0800 > From: Alexey Makhalov <amakhalov@xxxxxxxxxx> > To: <crash-utility@xxxxxxxxxx>, <k-hagio-ab@xxxxxxx> > Subject: [PATCH v3 1/2] Update gdb to 10.1 > Message-ID: <20201229100609.83147-2-amakhalov@xxxxxxxxxx> > Content-Type: text/plain > > Fully redone gdb-7.6.patch to gdb-10.1.patch to keep all > functionality. Changes which were dropped are saved in > dropped-gdb-7.6-to-10.1.patch > > Main difference between gdb-7.6 and gdb-10.1 is the last > one was rewritten in C++. > I continue to keep crash code in C. Mark transition > functions as extern "C" to resolve linking issues. > > Eliminated error_hook() and SJLJ while running in C++ code > (after gdb_command_funnel()) use try-catch mechanism instead. > > request_types() was redone to do not call > GNU_GET_NEXT_DATATYPE multiple times but single usage of > GNU_ITERATE_DATATYPES with proper callback instead. > Complete iteration happens on C++ side now. > Removed "struct global_iterator" from request structure, > but added several fields (including callback pointer) to > be able to perform iteration on C++ side. > > Type of "linux_banner" symbol is reported as 'D' by new > gdb as its section ".rodata" marked as writable in vmlinux. > > BFD API has changed. > > deprecated_command_loop_hook got deprecated. So, call crash > main_loop() directly from gdb captured_main(). > > Added symbol file (vmlinux) rebase in gdb by kaslr_offset. > by using new function: objfile_rebase(). > As result, we do not need kernel symbol patching as well as > bait_and_switch hook anymore. > > Added crash_target for gdb to provide target operations > such as xfer_partial to read and write crash dump memory. > Removed previously used hooks for that in target.c. > Keep crash_target.c as a file in crash folder instead of > in gdb-10.1.patch for easier development and history > tracking. > crash_target can be enhanced in future to provide access > to CPU registers, so backtrace and frame related commands > from gdb can be used. > > Removed gdb-7.6-proc_service.h.patch is not required as > gdb-10.1 already has this change. > > Extra: add VMware copyright to the version info. > > TODO: > 1) gdb-10.1-ppc64le-support.patch has to be updated with > following commits. > 2) deprecate #if defined(GDB_X_Y) code as crash really > supports only the latest gdb (only one patch). > 3) move gdb_funnel_command() and subfunctions to separate > file, similar to crash_target.c > 4) remove legacy kernel patching and bait_and_switch hook. > > Signed-off-by: Alexey Makhalov <amakhalov@xxxxxxxxxx> > --- > Makefile | 11 +- > configure.c | 20 +- > crash_target.c | 104 + > defs.h | 35 +- > dropped-gdb-7.6-to-10.1.patch | 303 +++ > ...support.patch => gdb-10.1-ppc64le-support.patch | 0 > gdb-10.1.patch | 1577 ++++++++++++ > gdb-7.6-proc_service.h.patch | 67 - > gdb-7.6.patch | 2503 -------------------- > gdb_interface.c | 85 +- > help.c | 1 + > kernel.c | 2 +- > main.c | 1 - > symbols.c | 125 +- > x86_64.c | 14 +- > 15 files changed, 2141 insertions(+), 2707 deletions(-) > create mode 100644 crash_target.c > create mode 100644 dropped-gdb-7.6-to-10.1.patch > rename gdb-7.6-ppc64le-support.patch => gdb-10.1-ppc64le-support.patch (100%) > create mode 100644 gdb-10.1.patch > delete mode 100644 gdb-7.6-proc_service.h.patch > delete mode 100644 gdb-7.6.patch -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility