From patchwork Fri Apr 22 17:25:18 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artem Bityutskiy X-Patchwork-Id: 92558 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id AD52B1007DC for ; Sat, 23 Apr 2011 03:24:33 +1000 (EST) Received: from canuck.infradead.org ([2001:4978:20e::1]) by bombadil.infradead.org with esmtps (Exim 4.72 #1 (Red Hat Linux)) id 1QDK4V-0001G5-3o; Fri, 22 Apr 2011 17:23:11 +0000 Received: from localhost ([127.0.0.1] helo=canuck.infradead.org) by canuck.infradead.org with esmtp (Exim 4.72 #1 (Red Hat Linux)) id 1QDK4S-0002td-TP; Fri, 22 Apr 2011 17:23:08 +0000 Received: from smtp.nokia.com ([147.243.1.47] helo=mgw-sa01.nokia.com) by canuck.infradead.org with esmtps (Exim 4.72 #1 (Red Hat Linux)) id 1QDK3Y-0002oL-53 for linux-mtd@lists.infradead.org; Fri, 22 Apr 2011 17:22:18 +0000 Received: from nokia.com (localhost [127.0.0.1]) by mgw-sa01.nokia.com (Switch-3.4.3/Switch-3.4.3) with ESMTP id p3MHM8Cq025953 for ; Fri, 22 Apr 2011 20:22:10 +0300 Received: from eru.research.nokia.com ([[172.21.24.121]]) by mgw-sa01.nokia.com with ESMTP id p3MHLiO0025326 ; Fri, 22 Apr 2011 20:21:48 +0300 From: Artem Bityutskiy To: MTD list Subject: [PATCH 07/13] fs-tests: integck: add debug compilation target Date: Fri, 22 Apr 2011 20:25:18 +0300 Message-Id: <1303493124-7619-8-git-send-email-dedekind1@gmail.com> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1303493124-7619-1-git-send-email-dedekind1@gmail.com> References: <1303493124-7619-1-git-send-email-dedekind1@gmail.com> X-Nokia-AV: Clean X-CRM114-Version: 20090807-BlameThorstenAndJenny ( TRE 0.7.6 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20110422_132212_775976_2ADA0D40 X-CRM114-Status: GOOD ( 10.30 ) X-Spam-Score: 3.4 (+++) X-Spam-Report: SpamAssassin version 3.3.1 on canuck.infradead.org summary: Content analysis details: (3.4 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, low trust [147.243.1.47 listed in list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is freemail (dedekind1[at]gmail.com) 0.0 DKIM_ADSP_CUSTOM_MED No valid author signature, adsp_override is CUSTOM_MED 2.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (dedekind1[at]gmail.com) 0.0 RFC_ABUSE_POST Both abuse and postmaster missing on sender domain 1.2 NML_ADSP_CUSTOM_MED ADSP custom_med hit, and not from a mailing list Cc: Adrian Hunter X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: linux-mtd-bounces@lists.infradead.org Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Artem Bityutskiy I often need to use gdb to debug integck, or sometimes even attach already running integck. But when it is compiled with optimizations, it is nearly impossible to use gdb. Introduce 'debug' target to compile integck without optimizations. Additionally, to make the stack backtraces work, add a dirty hack to integck.c to remove all the static keywords - this turns static functions to non-static and makes them appear in stack backtraces. Signed-off-by: Artem Bityutskiy --- tests/fs-tests/integrity/Makefile | 5 +++++ tests/fs-tests/integrity/integck.c | 10 ++++++++++ 2 files changed, 15 insertions(+), 0 deletions(-) diff --git a/tests/fs-tests/integrity/Makefile b/tests/fs-tests/integrity/Makefile index 976c3ce..2cdd470 100644 --- a/tests/fs-tests/integrity/Makefile +++ b/tests/fs-tests/integrity/Makefile @@ -13,5 +13,10 @@ TARGETS = integck all: $(TARGETS) +# Disable optimizations to make it possible to use gdb comfortably +# Use -rdynamic to have stack backtraces +debug: + gcc $(CFLAGS) -O0 -D INTEGCK_DEBUG -rdynamic integck.c -o integck + clean: rm -f *.o $(TARGETS) diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c index f09cfaf..fbd6cc5 100644 --- a/tests/fs-tests/integrity/integck.c +++ b/tests/fs-tests/integrity/integck.c @@ -41,6 +41,16 @@ #define PROGRAM_NAME "integck" #include "common.h" +/* + * WARNING! This is a dirty hack! The symbols for static functions are not + * printed in the stack backtrace. So we remove ths 'static' keyword using the + * pre-processor. This is really error-prone because this won't work if, e.g., + * local static variables were used. + */ +#ifdef INTEGCK_DEBUG +#define static +#endif + #define MAX_RANDOM_SEED 10000000 /* The pattern for the top directory where we run the test */