From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20704 invoked by alias); 28 Jun 2011 15:46:12 -0000 Received: (qmail 20679 invoked by uid 22791); 28 Jun 2011 15:46:10 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_PX X-Spam-Check-By: sourceware.org Received: from mail-vw0-f41.google.com (HELO mail-vw0-f41.google.com) (209.85.212.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 28 Jun 2011 15:45:53 +0000 Received: by vws4 with SMTP id 4so325707vws.0 for ; Tue, 28 Jun 2011 08:45:52 -0700 (PDT) MIME-Version: 1.0 Received: by 10.220.45.211 with SMTP id g19mr2630018vcf.271.1309275952674; Tue, 28 Jun 2011 08:45:52 -0700 (PDT) Received: by 10.220.32.5 with HTTP; Tue, 28 Jun 2011 08:45:52 -0700 (PDT) In-Reply-To: <20110628150631.GD24904@e102109-lin.cambridge.arm.com> References: <20110627125306.GA30646@doriath.ww600.siemens.net> <20110627132735.GE16103@n2100.arm.linux.org.uk> <4E088DE1.2060809@gmail.com> <4E089AB3.1090801@codesourcery.com> <20110628103946.GC21898@n2100.arm.linux.org.uk> <20110628142045.GC7255@1n450.cable.virginmedia.net> <20110628143014.GD7255@1n450.cable.virginmedia.net> <20110628150631.GD24904@e102109-lin.cambridge.arm.com> Date: Tue, 28 Jun 2011 15:46:00 -0000 Message-ID: Subject: Re: Problem with GDB when debugging IRQ handlers From: Dmitry Eremin-Solenikov To: Catalin Marinas Cc: Russell King - ARM Linux , Yao Qi , Eric Miao , "linux-arm-kernel@lists.infradead.org" , "gdb@sourceware.org" Content-Type: multipart/mixed; boundary=001636284d681278c804a6c79089 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2011-06/txt/msg00164.txt.bz2 --001636284d681278c804a6c79089 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 6359 On 6/28/11, Catalin Marinas wrote: > On Tue, Jun 28, 2011 at 03:54:11PM +0100, Dmitry Eremin-Solenikov wrote: >> On 6/28/11, Dmitry Eremin-Solenikov wrote: >> > On 6/28/11, Catalin Marinas wrote: >> >> Actually since the return address is in S_PC (which maybe gdb assumes >> >> it >> >> would be the saved LR), this is probably not be correct. After SVC >> >> entry, we have he following structure on the stack: >> >> >> >> ORIG_r0 >> >> CPSR >> >> <--- assuming this is the Call Frame Address (SP+S_PC+4) >> >> PC <--- CFA - 4 >> >> LR <--- don't care >> >> SP <--- CFA - 12 >> >> ... >> >> >> >> >> >> So we tell gdb about this with something like below (untested): >> >> >> >> .cfi_def_cfa_offset S_PC + 4 >> >> .cfi_offset 14, -4 >> >> .cfi_offset 13, -12 >> > >> > This brings "unknown CFA rule" gdb exception, but it seems I got your >> > idea. >> >> No, this seems to work, it was my fault. I got more or less reasonable >> backtrace now. > > Does gdb manage to get into the parent stack frame? > > BTW, are you compiling with FRAME_POINTER enabled? In this case you > would need to set some offset for the FP register (11). If you don't > mind missing the first part in the parent context, maybe something like > below: > > .cfi_def_cfa_offset S_PC > .cfi_offset 14, -4 > .cfi_offset 13, -8 > .cfi_offset 11, -16 No, this seems wrong. Previous version was better. Here is a part of gdb log generated using the attached patch: Breakpoint 2, pxamci_start_cmd (host=0xc3bfd680, cmd=0xc3e7bed8, cmdat=2112) at /run/shm/zigbee-kernel/drivers/mmc/host/pxamci.c:256 256 WARN_ON(host->cmd != NULL); #0 pxamci_start_cmd (host=0xc3bfd680, cmd=0xc3e7bed8, cmdat=2112) at /run/shm/zigbee-kernel/drivers/mmc/host/pxamci.c:256 #1 0xc0248870 in mmc_start_request (host=0xc3bfd400, mrq=0xc3e7beb0) at /run/shm/zigbee-kernel/drivers/mmc/core/core.c:196 #2 0xc02488bc in mmc_wait_for_req (host=0xc3bfd400, mrq=0xc3e7beb0) at /run/shm/zigbee-kernel/drivers/mmc/core/core.c:220 #3 0xc0248930 in mmc_wait_for_cmd (host=0xc3bfd400, cmd=0xc3e7bed8, retries=0) at /run/shm/zigbee-kernel/drivers/mmc/core/core.c:249 #4 0xc024ef48 in mmc_io_rw_direct_host (host=0xc3bfd400, write=, fn=, addr=, in=, out=0xc3e7bf3f ) at /run/shm/zigbee-kernel/drivers/mmc/core/sdio_ops.c:89 #5 0xc024efd4 in sdio_reset (host=0xc3bfd400) at /run/shm/zigbee-kernel/drivers/mmc/core/sdio_ops.c:191 #6 0xc0249974 in mmc_rescan_try_freq (host=0xc3bfd400, freq=) at /run/shm/zigbee-kernel/drivers/mmc/core/core.c:1548 #7 0xc0249b60 in mmc_rescan (work=0xc3bfd618) at /run/shm/zigbee-kernel/drivers/mmc/core/core.c:1609 #8 0xc00638b0 in process_one_work (worker=0xc3e63580, work=0xc3bfd618) at /run/shm/zigbee-kernel/kernel/workqueue.c:1868 #9 0xc0063e2c in worker_thread (__worker=) at /run/shm/zigbee-kernel/kernel/workqueue.c:1979 #10 0xc00675dc in kthread (_create=0xc3e41ef0) at /run/shm/zigbee-kernel/kernel/kthread.c:96 #11 0xc0033810 in kernel_thread_helper () #12 0xc0033810 in kernel_thread_helper () Backtrace stopped: previous frame identical to this frame (corrupt stack?) Breakpoint 1, pxamci_irq (irq=39, devid=0xc3bfd680) at /run/shm/zigbee-kernel/drivers/mmc/host/pxamci.c:397 397 testtt(); #0 pxamci_irq (irq=39, devid=0xc3bfd680) at /run/shm/zigbee-kernel/drivers/mmc/host/pxamci.c:397 #1 0xc0084fa4 in handle_irq_event_percpu (desc=0xc3e05ea0, action=0xc399f1c0) at /run/shm/zigbee-kernel/kernel/irq/handle.c:126 #2 0xc0085128 in handle_irq_event (desc=0xc3e05ea0) at /run/shm/zigbee-kernel/kernel/irq/handle.c:182 #3 0xc00871d0 in handle_level_irq (irq=, desc=0xc3e05ea0) at /run/shm/zigbee-kernel/kernel/irq/chip.c:345 #4 0xc0084f64 in generic_handle_irq_desc (irq=39) at /run/shm/zigbee-kernel/include/linux/irqdesc.h:111 #5 generic_handle_irq (irq=39) at /run/shm/zigbee-kernel/kernel/irq/irqdesc.c:304 #6 0xc0032060 in asm_do_IRQ (irq=39, regs=) at /run/shm/zigbee-kernel/arch/arm/kernel/irq.c:90 #7 0xc0032b50 in __irq_svc () at /run/shm/zigbee-kernel/arch/arm/kernel/entry-armv.S:222 #8 0xc0253bc4 in arch_local_irq_restore (host=0xc3bfd680, cmd=0xc3e7bed8, cmdat=2113) at /run/shm/zigbee-kernel/arch/arm/include/asm/irqflags.h:142 #9 spin_unlock_irqrestore (host=0xc3bfd680, cmd=0xc3e7bed8, cmdat=2113) at /run/shm/zigbee-kernel/include/linux/spinlock.h:340 #10 pxamci_enable_irq (host=0xc3bfd680, cmd=0xc3e7bed8, cmdat=2113) at /run/shm/zigbee-kernel/drivers/mmc/host/pxamci.c:160 #11 pxamci_start_cmd (host=0xc3bfd680, cmd=0xc3e7bed8, cmdat=2113) at /run/shm/zigbee-kernel/drivers/mmc/host/pxamci.c:285 #12 0xc0248870 in mmc_start_request (host=0xc3bfd400, mrq=0xc3e7beb0) at /run/shm/zigbee-kernel/drivers/mmc/core/core.c:196 #13 0xc02488bc in mmc_wait_for_req (host=0xc3bfd400, mrq=0xc3e7beb0) at /run/shm/zigbee-kernel/drivers/mmc/core/core.c:220 #14 0xc0248930 in mmc_wait_for_cmd (host=0xc3bfd400, cmd=0xc3e7bed8, retries=0) at /run/shm/zigbee-kernel/drivers/mmc/core/core.c:249 #15 0xc024ef48 in mmc_io_rw_direct_host (host=0xc3bfd400, write=, fn=, addr=, in=, out=0xc3e7bf3f ) at /run/shm/zigbee-kernel/drivers/mmc/core/sdio_ops.c:89 #16 0xc024efd4 in sdio_reset (host=0xc3bfd400) at /run/shm/zigbee-kernel/drivers/mmc/core/sdio_ops.c:191 #17 0xc0249974 in mmc_rescan_try_freq (host=0xc3bfd400, freq=) at /run/shm/zigbee-kernel/drivers/mmc/core/core.c:1548 #18 0xc0249b60 in mmc_rescan (work=0xc3bfd618) at /run/shm/zigbee-kernel/drivers/mmc/core/core.c:1609 #19 0xc00638b0 in process_one_work (worker=0xc3e63580, work=0xc3bfd618) at /run/shm/zigbee-kernel/kernel/workqueue.c:1868 #20 0xc0063e2c in worker_thread (__worker=) at /run/shm/zigbee-kernel/kernel/workqueue.c:1979 #21 0xc00675dc in kthread (_create=0xc3e41ef0) at /run/shm/zigbee-kernel/kernel/kthread.c:96 #22 0xc0033810 in kernel_thread_helper () #23 0xc0033810 in kernel_thread_helper () Backtrace stopped: previous frame identical to this frame (corrupt stack?) Colleagues, does this look suitable for you? -- With best wishes Dmitry --001636284d681278c804a6c79089 Content-Type: text/x-patch; charset=US-ASCII; name="ARM_CFI.patch" Content-Disposition: attachment; filename="ARM_CFI.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 Content-length: 3380 ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2tlcm5lbC9lbnRyeS1hcm12LlMgYi9h cmNoL2FybS9rZXJuZWwvZW50cnktYXJtdi5TCmluZGV4IGU4ZDg4NTYuLjQ0 ZGFmNDAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9lbnRyeS1hcm12 LlMKKysrIGIvYXJjaC9hcm0va2VybmVsL2VudHJ5LWFybXYuUwpAQCAtMjgs NiArMjgsNyBAQAogI2luY2x1ZGUgImVudHJ5LWhlYWRlci5TIgogI2luY2x1 ZGUgPGFzbS9lbnRyeS1tYWNyby1tdWx0aS5TPgogCisJLmNmaV9zZWN0aW9u cwkuZGVidWdfZnJhbWUKIC8qCiAgKiBJbnRlcnJ1cHQgaGFuZGxpbmcuICBQ cmVzZXJ2ZXMgcjcsIHI4LCByOQogICovCkBAIC0xMTMsNiArMTE0LDcgQEAg RU5EUFJPQyhfX3VuZF9pbnZhbGlkKQogCiAJLm1hY3JvCXN2Y19lbnRyeSwg c3RhY2tfaG9sZT0wCiAgVU5XSU5EKC5mbnN0YXJ0CQkpCisJLmNmaV9zdGFy dHByb2MKICBVTldJTkQoLnNhdmUge3IwIC0gcGN9CQkpCiAJc3ViCXNwLCBz cCwgIyhTX0ZSQU1FX1NJWkUgKyBcc3RhY2tfaG9sZSAtIDQpCiAjaWZkZWYg Q09ORklHX1RIVU1CMl9LRVJORUwKQEAgLTE0Niw2ICsxNDgsMjQgQEAgRU5E UFJPQyhfX3VuZF9pbnZhbGlkKQogCUAgIHI0IC0gb3JpZ19yMCAoc2VlIHB0 X3JlZ3MgZGVmaW5pdGlvbiBpbiBwdHJhY2UuaCkKIAlACiAJc3RtaWEJcjUs IHtyMCAtIHI0fQorCS5jZmlfZGVmX2NmYV9vZmZzZXQgU19QQyArIDQKKwku Y2ZpX29mZnNldCAxNCwgLTQKKyNkZWZpbmUJQ0ZJX1JFR19PRkYocikgLmNm aV9vZmZzZXQgciwgKHIgLSAxNikgKiA0CisJQ0ZJX1JFR19PRkYoMTMpCisJ Q0ZJX1JFR19PRkYoMTIpCisJQ0ZJX1JFR19PRkYoMTEpCisJQ0ZJX1JFR19P RkYoMTApCisJQ0ZJX1JFR19PRkYoOSkKKwlDRklfUkVHX09GRig4KQorCUNG SV9SRUdfT0ZGKDcpCisJQ0ZJX1JFR19PRkYoNikKKwlDRklfUkVHX09GRig1 KQorCUNGSV9SRUdfT0ZGKDQpCisJQ0ZJX1JFR19PRkYoMykKKwlDRklfUkVH X09GRigyKQorCUNGSV9SRUdfT0ZGKDEpCisJQ0ZJX1JFR19PRkYoMCkKKyN1 bmRlZiBDRklfUkVHX09GRgogCS5lbmRtCiAKIAkuYWxpZ24JNQpAQCAtMzQ3 LDYgKzM2Nyw3IEBAIEVORFBST0MoX19wYWJ0X3N2YykKIAkubWFjcm8JdXNy X2VudHJ5CiAgVU5XSU5EKC5mbnN0YXJ0CSkKICBVTldJTkQoLmNhbnR1bndp bmQJKQlAIGRvbid0IHVud2luZCB0aGUgdXNlciBzcGFjZQorCS5jZmlfc3Rh cnRwcm9jCiAJc3ViCXNwLCBzcCwgI1NfRlJBTUVfU0laRQogIEFSTSgJc3Rt aWIJc3AsIHtyMSAtIHIxMn0JKQogIFRIVU1CKAlzdG1pYQlzcCwge3IwIC0g cjEyfQkpCkBAIC00MjcsNiArNDQ4LDcgQEAgX19kYWJ0X3VzcjoKIAltb3YJ cjIsIHNwCiAJYWRyCWxyLCBCU1lNKHJldF9mcm9tX2V4Y2VwdGlvbikKIAli CWRvX0RhdGFBYm9ydAorCS5jZmlfZW5kcHJvYwogIFVOV0lORCguZm5lbmQJ CSkKIEVORFBST0MoX19kYWJ0X3VzcikKIApAQCAtNDU0LDYgKzQ3Niw3IEBA IF9faXJxX3VzcjoKIAogCW1vdgl3aHksICMwCiAJYglyZXRfdG9fdXNlcgor CS5jZmlfZW5kcHJvYwogIFVOV0lORCguZm5lbmQJCSkKIEVORFBST0MoX19p cnFfdXNyKQogCkBAIC00OTYsNiArNTE5LDcgQEAgX191bmRfdXNyOgogI2Vs c2UKIAliCV9fdW5kX3Vzcl91bmtub3duCiAjZW5kaWYKKwkuY2ZpX2VuZHBy b2MKICBVTldJTkQoLmZuZW5kCQkpCiBFTkRQUk9DKF9fdW5kX3VzcikKIApA QCAtNjkxLDYgKzcxNSw3IEBAIF9fcGFidF91c3I6CiAJZW5hYmxlX2lycQkJ CQlAIEVuYWJsZSBpbnRlcnJ1cHRzCiAJbW92CXIyLCBzcAkJCQlAIHJlZ3MK IAlibAlkb19QcmVmZXRjaEFib3J0CQlAIGNhbGwgYWJvcnQgaGFuZGxlcgor CS5jZmlfZW5kcHJvYwogIFVOV0lORCguZm5lbmQJCSkKIAkvKiBmYWxsIHRo cm91Z2ggKi8KIC8qCkBAIC02OTksOSArNzI0LDExIEBAIF9fcGFidF91c3I6 CiBFTlRSWShyZXRfZnJvbV9leGNlcHRpb24pCiAgVU5XSU5EKC5mbnN0YXJ0 CSkKICBVTldJTkQoLmNhbnR1bndpbmQJKQorCS5jZmlfc3RhcnRwcm9jCiAJ Z2V0X3RocmVhZF9pbmZvIHRzawogCW1vdgl3aHksICMwCiAJYglyZXRfdG9f dXNlcgorCS5jZmlfZW5kcHJvYwogIFVOV0lORCguZm5lbmQJCSkKIEVORFBS T0MoX19wYWJ0X3VzcikKIEVORFBST0MocmV0X2Zyb21fZXhjZXB0aW9uKQpk aWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL2VudHJ5LWhlYWRlci5TIGIv YXJjaC9hcm0va2VybmVsL2VudHJ5LWhlYWRlci5TCmluZGV4IDA1MTE2NmMu LjVlZDEzYWUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9lbnRyeS1o ZWFkZXIuUworKysgYi9hcmNoL2FybS9rZXJuZWwvZW50cnktaGVhZGVyLlMK QEAgLTg2LDYgKzg2LDcgQEAKICNlbHNlCiAJbGRtaWEJc3AsIHtyMCAtIHBj fV4JCQlAIGxvYWQgcjAgLSBwYywgY3BzcgogI2VuZGlmCisJLmNmaV9lbmRw cm9jCiAJLmVuZG0KIAogCS5tYWNybwlyZXN0b3JlX3VzZXJfcmVncywgZmFz dCA9IDAsIG9mZnNldCA9IDAK --001636284d681278c804a6c79089--