From d9757bcd43534875d2003962944d3d130289f82c Mon Sep 17 00:00:00 2001 From: Markus Metzger Date: Thu, 20 Oct 2022 16:27:34 +0200 Subject: [PATCH] gdb, btrace: fix family and model computation In gdb/nat/linux-btrace.c:btrace_this_cpu() we initialize the cpu structure given to the libipt btrace decoder. We only consider the extended model field for family 0x6 and forget about family 0xf and we don't consider the extended family field. Fix it. --- gdb/nat/linux-btrace.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gdb/nat/linux-btrace.c b/gdb/nat/linux-btrace.c index 4911630ba5c..a951f3b56aa 100644 --- a/gdb/nat/linux-btrace.c +++ b/gdb/nat/linux-btrace.c @@ -84,9 +84,11 @@ btrace_this_cpu (void) cpu.vendor = CV_INTEL; cpu.family = (cpuid >> 8) & 0xf; - cpu.model = (cpuid >> 4) & 0xf; + if (cpu.family == 0xf) + cpu.family += (cpuid >> 20) & 0xff; - if (cpu.family == 0x6) + cpu.model = (cpuid >> 4) & 0xf; + if ((cpu.family == 0x6) || ((cpu.family & 0xf) == 0xf)) cpu.model += (cpuid >> 12) & 0xf0; } } -- 2.30.2