----- Original Message -----
This is the release of crash gcore command, version 1.5.0.
The aim of this release is mainly to support v4.18 and newer kernels.
ChangeLog:
- Fix the issue that special vmas such as vdso and vsyscall are not
saved in a produced core file due to the commit
78d683e838a60ec4ba4591cca4364cba84a9e626 titled "mm, fs: Add
vm_ops->name as an alternative to arch_vma_name" and merged at
v3.15-rc5, which replaced the way of naming special vma such as
vdso and vsyscall.
- Fix the issue that no NT_PRFPREG is collected due to repeated
changes on the x86 FPU code in the upstream kernel. Note that
although the issue that no NT_PRFPREG is collected is (probably
temporarily) fixed, its content would be useless in most cases
since the FPU registers to be saved in NT_PRFPREG are now read
dynamically when a core file is created.
- Change the logic of restoring general-purpose registers at
interrupt contexts according to the commit
ff467594f2a4be01a0fa5e9ffc223fa930d232dd titled "x86/asm/entry/64:
Save all regs on interrupt entry" and merged at v4.2-rc2 where all
the registers including callee-saved registers are saved on
interrupt entry. Thus, we don't have to try to restore
callee-saved registers in the function frames. I'm very happy.
- Address the change of vsyscall logic that vsyscall page is not
mapped in user-space if vsyscall=none is configured in the kernel
command-line parameters by the commit
87983c66bc02c9cd8e4a42e7924435145d52bb13 titled "x86_64, vsyscall:
Turn vsyscalls all the way off when vsyscall==none" and merged at
v3.18-rc3.
- Fix NULL pointer dereference caused by the removal of old_rsp
symbol by the commit 9854dd74c3f6af8d9d527de86c6074b7ed0495f1
titled "x86: fix NULL pointer dereference caused by the removal of
old_rsp" and merged at v4.0-rc3. But the commit simplifies how to
save old_rsp and now it is saved in the bottom of kernel stack as
part of a pt_regs structure object. Hence this also simplifies
gcore's register restoration logic.
MD5 CheckSum:
# md5sum ./crash-gcore-command-1.5.0.tar.gz
b420bb5be8013c8482861171ff78fbaf ./crash-gcore-command-1.5.0.tar.gz
--
Thanks.
HATAYAMA, Daisuke
Hello Daisuke,
Thanks for the update. Note that the arm64 bug that we discussed a while
back was not addressed in your update. With the suggested patch, it does
work OK:
--- a/gcore.c.orig
+++ b/gcore.c
@@ -490,6 +490,10 @@ static void gcore_offset_table_init(void
GCORE_MEMBER_OFFSET_INIT(vfp_hard_struct_fpscr, "vfp_hard_struct",
"fpscr");
GCORE_MEMBER_OFFSET_INIT(thread_struct_fpsimd_state, "thread_struct",
"fpsimd_state");
GCORE_MEMBER_OFFSET_INIT(thread_struct_tp_value, "thread_struct",
"tp_value");
+ if (GCORE_INVALID_MEMBER(thread_struct_fpsimd_state)) {
+ GCORE_ANON_MEMBER_OFFSET_INIT(thread_struct_fpsimd_state,
"thread_struct", "uw.fpsimd_state");
+ GCORE_ANON_MEMBER_OFFSET_INIT(thread_struct_tp_value,
"thread_struct", "uw.tp_value");
+ }
}
static void gcore_size_table_init(void)
Do you want to update the release, or leave it as-is and allow distros
to add the patch above?
Thanks,
Dave