Source: crash Version: 7.1.7-1 Severity: serious Tags: patch The utility is probably working in its current shape for older kernel, but not for newer:
|$ crash ../build-RT/vmlinux mem2 | |crash 7.1.7 |Copyright (C) 2002-2016 Red Hat, Inc. |Copyright (C) 2004, 2005, 2006, 2010 IBM Corporation |Copyright (C) 1999-2006 Hewlett-Packard Co |Copyright (C) 2005, 2006, 2011, 2012 Fujitsu Limited |Copyright (C) 2006, 2007 VA Linux Systems Japan K.K. |Copyright (C) 2005, 2011 NEC Corporation |Copyright (C) 1999, 2002, 2007 Silicon Graphics, Inc. |Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc. |This program is free software, covered by the GNU General Public |License, |and you are welcome to change it and/or distribute copies of it under |certain conditions. Enter "help copying" to see the conditions. |This program has absolutely no warranty. Enter "help warranty" for |details. | |GNU gdb (GDB) 7.6 |Copyright (C) 2013 Free Software Foundation, Inc. |License GPLv3+: GNU GPL version 3 or later |<http://gnu.org/licenses/gpl.html> |This is free software: you are free to change and redistribute it. |There is NO WARRANTY, to the extent permitted by law. Type "show |copying" |and "show warranty" for details. |This GDB was configured as "x86_64-unknown-linux-gnu"... | | |crash: cannot resolve "init_level4_pgt" This was a v4.14 kernel. With the patch attached on the other hand, it works again. This change is part of 7.2.0. Can please have an update for unstable and a backport for stable? Sebastian
>From a16324a2f05c0947a83e26a5de7c756de4603da9 Mon Sep 17 00:00:00 2001 From: Dave Anderson <ander...@redhat.com> Date: Thu, 6 Jul 2017 16:19:41 -0400 Subject: [PATCH] Fix for Linux 4.13-rc0 commit 7fd8329ba502ef76dd91db561c7aed696b2c7720 "x86/boot/64: Rename init_level4_pgt and early_level4_pgt". Without the patch, the crash session fails during initialization with the error message "crash: cannot resolve "init_level4_pgt". (ander...@redhat.com) --- x86_64.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/x86_64.c b/x86_64.c index 1d23d784ad51..44d0c98660c0 100644 --- a/x86_64.c +++ b/x86_64.c @@ -1388,12 +1388,17 @@ static void x86_64_init_kernel_pgd(void) { int i; - ulong init_level4_pgt; + ulong kernel_pgt = 0; - init_level4_pgt = symbol_value("init_level4_pgt"); + if (kernel_symbol_exists("init_level4_pgt")) + kernel_pgt = symbol_value("init_level4_pgt"); + else if (kernel_symbol_exists("init_top_pgt")) + kernel_pgt = symbol_value("init_top_pgt"); + else + error(WARNING, "neither \"init_level4_pgt\" or \"init_top_pgt\" exist\n"); for (i = 0; i < NR_CPUS; i++) - vt->kernel_pgd[i] = init_level4_pgt; + vt->kernel_pgd[i] = kernel_pgt; FILL_PML4(); } -- 2.15.1