From: Jason Wessel <jason.wessel@windriver.com>
To: Denis Joseph Barrow <D.Barow@option.com>
Cc: KGDB Mailing List <kgdb-bugreport@lists.sourceforge.net>,
linux-kernel@vger.kernel.org, gareth@valinux.com,
markus.t.metzger@intel.com
Subject: Re: getting false SIGTRAP breakpoints in kernel i.e. kernel hung unless gdb remotely attached on x86 & cont is issued
Date: Fri, 19 Sep 2008 07:57:24 -0500 [thread overview]
Message-ID: <48D3A1B4.8000505@windriver.com> (raw)
In-Reply-To: <48D39B9F.8010404@option.com>
Denis Joseph Barrow wrote:
> Hi Jason,
> Sorry for nitpicking & a big thanks for your patch.
> While this patch stops the big problem, the kernel halting, gdb
> debugging the userland code still doesn't behave correctly
> now. Trying to stepi over a sysenter call in gdb doesn't return
> to the gdb debugger ctrl-c in the debugger still works however.
> Some code probably needs to be also fixed in arch/x86/kernel/ptrace.c
> or ideally the generic kernel/ptrace.c, seeing as this works
> with gdb on a normal kernel it's not a gdb issue even if
> it can be kludge fixed there.
> I'm running GNU gdb 6.8-debian from ubuntu 8.04 hardy heron
>
>
The patch I sent is not yet included the kgdb stream because I was
waiting for further comment. I do not see any issues however in the
case that you describe, so I will describe how I tested it and then
perhaps you can explain further the case that does not work.
Given that I still had your test program, I used it to set a
breakpoint at read(), after performing an attach as you described
previous with attaching to the running process. At this point kgdboc
is loaded and configured.
gdb commands:
att PID_OF_randsleep
break read
continue
At this point to hit the breakpoint, I had to type some input on the
ttyS0 which randsleep where randsleep was connected. At that point I
was able to step the system call with enough "si" commands. In the
example shown below I did have to provide some more input after the
"si" for address 0xffffe419 so that the system call would come out of
the sleep state because it happened to be a blocking read.
Example:
(gdb) continue
Continuing.
Breakpoint 1, 0x08056b30 in read ()
(gdb) si
0x08056b38 in read ()
(gdb)
0x08056b3a in __read_nocancel ()
(gdb)
0x08056b3b in __read_nocancel ()
(gdb)
0x08056b3f in __read_nocancel ()
(gdb)
0x08056b43 in __read_nocancel ()
(gdb)
0x08056b47 in __read_nocancel ()
(gdb)
0x08056b4c in __read_nocancel ()
(gdb)
0xffffe414 in __kernel_vsyscall ()
(gdb) disas $pc $pc+8
Dump of assembler code from 0xffffe414 to 0xffffe41c:
0xffffe414 <__kernel_vsyscall+0>: push %ecx
0xffffe415 <__kernel_vsyscall+1>: push %edx
0xffffe416 <__kernel_vsyscall+2>: push %ebp
0xffffe417 <__kernel_vsyscall+3>: mov %esp,%ebp
0xffffe419 <__kernel_vsyscall+5>: sysenter
0xffffe41b <__kernel_vsyscall+7>: nop
End of assembler dump.
(gdb) si
0xffffe415 in __kernel_vsyscall ()
(gdb)
0xffffe416 in __kernel_vsyscall ()
(gdb)
0xffffe417 in __kernel_vsyscall ()
(gdb)
0xffffe419 in __kernel_vsyscall ()
(gdb)
0xffffe424 in __kernel_vsyscall ()
(gdb)
At least this case appears to work fine with or without kgdb
loaded. Perhaps you have a different case you can describe?
Thanks,
Jason.
next prev parent reply other threads:[~2008-09-19 12:57 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-17 13:47 getting false SIGTRAP breakpoints in kernel i.e. kernel hung unless gdb remotely attached on x86 & cont is issued Denis Joseph Barrow
2008-09-17 13:55 ` Jason Wessel
2008-09-17 14:20 ` Denis Joseph Barrow
2008-09-18 14:53 ` Jason Wessel
2008-09-19 12:31 ` Denis Joseph Barrow
2008-09-19 12:57 ` Jason Wessel [this message]
2008-09-19 13:35 ` Denis Joseph Barrow
2008-09-19 19:38 ` Jason Wessel
[not found] ` <49708E50.8080103@option.com>
2009-01-16 15:58 ` [PATCH]l gdb serial debugging appears be broken since at least 2.6.28-rc6 by tty layer now hopefully fixed Denis Joseph Barrow
2008-09-17 15:40 ` getting false SIGTRAP breakpoints in kernel i.e. kernel hung unless gdb remotely attached on x86 & cont is issued Denis Joseph Barrow
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=48D3A1B4.8000505@windriver.com \
--to=jason.wessel@windriver.com \
--cc=D.Barow@option.com \
--cc=gareth@valinux.com \
--cc=kgdb-bugreport@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=markus.t.metzger@intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.