Newer Xen versions (at least 4.2) use per_cpu__init_tss instead of init_tss array. Take into account that. Signed-off-by: Daniel Kiper <daniel.kiper at oracle.com> diff -Npru crash-6.1.0.orig/x86.c crash-6.1.0/x86.c --- crash-6.1.0.orig/x86.c 2012-11-13 14:45:58.000000000 +0100 +++ crash-6.1.0/x86.c 2012-11-13 14:48:13.000000000 +0100 @@ -5471,9 +5471,16 @@ x86_get_stackbase_hyper(ulong task) if (!xen_hyper_test_pcpu_id(pcpu)) { error(FATAL, "invalid pcpu number\n"); } - init_tss = symbol_value("init_tss"); + + if (symbol_exists("init_tss")) { + init_tss = symbol_value("init_tss"); + init_tss += XEN_HYPER_SIZE(tss_struct) * pcpu; + } else { + init_tss = symbol_value("per_cpu__init_tss"); + init_tss = xen_hyper_per_cpu(init_tss, pcpu); + } + buf = GETBUF(XEN_HYPER_SIZE(tss_struct)); - init_tss += XEN_HYPER_SIZE(tss_struct) * pcpu; if (!readmem(init_tss, KVADDR, buf, XEN_HYPER_SIZE(tss_struct), "init_tss", RETURN_ON_ERROR)) { error(FATAL, "cannot read init_tss.\n");