From: yao@codesourcery.com (Yao Qi)
To: linux-arm-kernel@lists.infradead.org
Subject: Problem with GDB when debugging IRQ handlers
Date: Mon, 27 Jun 2011 22:58:59 +0800 [thread overview]
Message-ID: <4E089AB3.1090801@codesourcery.com> (raw)
In-Reply-To: <4E088DE1.2060809@gmail.com>
On 06/27/2011 10:04 PM, Dmitry Eremin-Solenikov wrote:
> Hello,
>
> On 27.06.2011 17:27, Russell King - ARM Linux wrote:
>> On Mon, Jun 27, 2011 at 04:53:06PM +0400, Dmitry Eremin-Solenikov wrote:
>>> I've got into a problem when trying to debug irq handlers on PXA (in
>>> qemu). backtrace is really strange from my POV (a target is just a qemu
>>> running a bit modified 3.0-rc2 kernel):
>> ...
>>> Breakpoint 1, handle_level_irq (irq=42, desc=0xc3e06000) at
>>> kernel/irq/chip.c:329
>>> 329 mask_ack_irq(desc);
>>> (gdb) bt
>>> #0 handle_level_irq (irq=42, desc=0xc3e06000) at kernel/irq/chip.c:329
>>> #1 0xc0085f64 in generic_handle_irq_desc (irq=42) at
>>> include/linux/irqdesc.h:111
>>> #2 generic_handle_irq (irq=42) at kernel/irq/irqdesc.c:304
>>> #3 0xc0033060 in asm_do_IRQ (irq=42, regs=<value optimized out>) at
>>> arch/arm/kernel/irq.c:90
>>> #4 0xc0033b50 in __irq_svc () at arch/arm/kernel/entry-armv.S:202
>>> #5 0xc0033b50 in __irq_svc () at arch/arm/kernel/entry-armv.S:202
>>> #6 0xc0033b50 in __irq_svc () at arch/arm/kernel/entry-armv.S:202
>>> #7 0xc0033b50 in __irq_svc () at arch/arm/kernel/entry-armv.S:202
>>> #8 0xc0033b50 in __irq_svc () at arch/arm/kernel/entry-armv.S:202
>>> #9 0xc0033b50 in __irq_svc () at arch/arm/kernel/entry-armv.S:202
>>> #10 0xc0033b50 in __irq_svc () at arch/arm/kernel/entry-armv.S:202
>>> #11 0xc0033b50 in __irq_svc () at arch/arm/kernel/entry-armv.S:202
>>> #12 0xc0033b50 in __irq_svc () at arch/arm/kernel/entry-armv.S:202
>>>
>>> ... and so on it continues ad infinitum. Is it the expected behaviour?
>>> Because I'm pretty much sure that this isn't a desired behaviour.
>>
Usually, if debugging information is not there, GDB will try to unwind
stacks by analyzing function's prologue. It looks arm prologue analyzer
goes into an endless loop, because of (I guess) the irregular register
usage in low-level kernel asm code.
arm/gdb's prologue analyzer can handle common code, but I am afraid it
is unable to handle kernel-specific code, unless we make gdb
kernel-aware. At least, we may teach gdb to stop at __irq_svc.
Please file a bug report against gdb, and post the disassembly of
__irq_svc in bug report.
>> We _really_ _do_ want to unwind through this so that we can see the
>> parent kernel context information in backtraces - and the fact that
I am not sure GDB is able to unwind stacks across processes (from child
to parent).
--
Yao (??)
next prev parent reply other threads:[~2011-06-27 14:58 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-27 12:53 Problem with GDB when debugging IRQ handlers Dmitry Eremin-Solenikov
2011-06-27 13:27 ` Russell King - ARM Linux
2011-06-27 14:04 ` Dmitry Eremin-Solenikov
2011-06-27 14:11 ` Hui Zhu
2011-06-27 14:58 ` Yao Qi [this message]
2011-06-28 10:39 ` Russell King - ARM Linux
2011-06-28 12:06 ` Dmitry Eremin-Solenikov
2011-06-28 12:13 ` Russell King - ARM Linux
2011-06-28 14:20 ` Catalin Marinas
2011-06-28 14:30 ` Catalin Marinas
2011-06-28 14:37 ` Russell King - ARM Linux
2011-06-28 14:42 ` Catalin Marinas
2011-06-28 14:44 ` Dmitry Eremin-Solenikov
2011-06-28 14:54 ` Dmitry Eremin-Solenikov
2011-06-28 15:06 ` Catalin Marinas
2011-06-28 15:45 ` Dmitry Eremin-Solenikov
2011-06-28 16:11 ` Catalin Marinas
2011-06-28 22:26 ` Dmitry Eremin-Solenikov
2011-06-29 9:09 ` Catalin Marinas
2011-06-29 11:20 ` Dmitry Eremin-Solenikov
2011-06-28 12:06 ` Hui Zhu
2011-06-28 12:09 ` Russell King - ARM Linux
2011-06-28 13:24 ` Catalin Marinas
2011-06-28 13:15 ` Catalin Marinas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E089AB3.1090801@codesourcery.com \
--to=yao@codesourcery.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).