From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Feiner Subject: [PATCH kvm-unit-tests v6 0/5] Debugging aids Date: Thu, 10 Mar 2016 16:47:34 -0800 Message-ID: References: <1456867658-10937-1-git-send-email-pfeiner@google.com> Cc: Peter Feiner To: kvm@vger.kernel.org, drjones@redhat.com, pbonzini@redhat.com Return-path: Received: from mail-pf0-f179.google.com ([209.85.192.179]:34908 "EHLO mail-pf0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932892AbcCKArs (ORCPT ); Thu, 10 Mar 2016 19:47:48 -0500 Received: by mail-pf0-f179.google.com with SMTP id n5so43118871pfn.2 for ; Thu, 10 Mar 2016 16:47:48 -0800 (PST) In-Reply-To: <1456867658-10937-1-git-send-email-pfeiner@google.com> Sender: kvm-owner@vger.kernel.org List-ID: Some aids for debugging: stack dumping, register dumping, and printing failing assertion conditions. Compiled on ppc64, arm64, i386, x86_64. v6: * Don't print dump_stack's call to backtrace() in the stack trace rather than having backtrace() skip over the first return address in the trace. * Actually removed lib/asm-generic/stack.c. v5: * Removed unused "b" flag from run_tests.sh * Removed misleading comment in mkstandalone.sh. v4: * Moved around arch and asm files per Linux style (hopefully). * Added --[enable|disable]-pretty-print-stacks to ./configure. This has obviated the -p command-line option in ./run_tests.sh that I introduced in v1. * Fixed arch-neutral backtrace so backtrace itself isn't included. v3: * Renamed functions to match standard backtrace functions * Added asm-generic stack walker that uses __builtin_return_address. * Moved offset out of libcflat and into pretty printer * Made pretty printer more robust w.r.t. errors: now it just continues printing. v2: * Fixed a bunch tests on x86 that broke with -fno-omit-frame-pointer. * Only use -fno-omit-frame-pointer on x86. I suspect arm & ppc will have similar problems that I fixed for x86. Peter Feiner (5): lib: backtrace printing x86: lib: debug dump on unhandled exceptions lib: dump stack on failed assert() scripts: pretty print stack traces scripts: automatically pretty print stacks Makefile | 6 ++- configure | 10 +++++ lib/arm/asm/stack.h | 0 lib/arm64/asm/stack.h | 0 lib/libcflat.h | 9 +++- lib/powerpc/asm/stack.h | 0 lib/ppc64/asm/stack.h | 0 lib/stack.c | 96 ++++++++++++++++++++++++++++++++++++++++++ lib/stack.h | 20 +++++++++ lib/x86/asm/stack.h | 14 ++++++ lib/x86/desc.c | 69 +++++++++++++++++++++++++++--- lib/x86/stack.c | 31 ++++++++++++++ run_tests.sh | 8 +++- scripts/mkstandalone.sh | 2 + scripts/pretty_print_stacks.py | 89 +++++++++++++++++++++++++++++++++++++++ x86/Makefile.common | 4 ++ 16 files changed, 347 insertions(+), 11 deletions(-) create mode 100644 lib/arm/asm/stack.h create mode 100644 lib/arm64/asm/stack.h create mode 100644 lib/powerpc/asm/stack.h create mode 100644 lib/ppc64/asm/stack.h create mode 100644 lib/stack.c create mode 100644 lib/stack.h create mode 100644 lib/x86/asm/stack.h create mode 100644 lib/x86/stack.c create mode 100755 scripts/pretty_print_stacks.py -- 2.7.0.rc3.207.g0ac5344