2004-11-23 11:23:18

by 林建安

[permalink] [raw]
Subject: I cannot stop execution by using "ctrl+c"


Hi all,
When using gdb to debug Linux kernel, I found that it cannot be stopped
temporarily by using "ctrl+c".
After the first strike of "ctrl+c", nothing happen.
After the second, Linux kernel will show these messages:
Interrupted while waiting for the program.
Give up (and stop debugging it)? (y or n)
If choose yes, kernel will totally stop and it goes back to gdb shell.
How can I stop kernel temporarily and then resume it?

Thanks and regards,
Colin


2004-11-23 14:13:03

by Jan Engelhardt

[permalink] [raw]
Subject: Re: I cannot stop execution by using "ctrl+c"

>Hi all,
>When using gdb to debug Linux kernel, I found that it cannot be stopped
>temporarily by using "ctrl+c".
>After the first strike of "ctrl+c", nothing happen.
>After the second, Linux kernel will show these messages:
> Interrupted while waiting for the program.
> Give up (and stop debugging it)? (y or n)
>If choose yes, kernel will totally stop and it goes back to gdb shell.
>How can I stop kernel temporarily and then resume it?

Since when does GDB *run* the kernel, if, well, the Kernel runs itself?


Jan Engelhardt
--
Gesellschaft für Wissenschaftliche Datenverarbeitung
Am Fassberg, 37077 Göttingen, http://www.gwdg.de

2004-11-23 23:07:24

by Andrew Morton

[permalink] [raw]
Subject: Re: I cannot stop execution by using "ctrl+c"

"colin" <[email protected]> wrote:
>
> When using gdb to debug Linux kernel, I found that it cannot be stopped
> temporarily by using "ctrl+c".
> After the first strike of "ctrl+c", nothing happen.
> After the second, Linux kernel will show these messages:
> Interrupted while waiting for the program.
> Give up (and stop debugging it)? (y or n)
> If choose yes, kernel will totally stop and it goes back to gdb shell.
> How can I stop kernel temporarily and then resume it?

This means that the kgdb stub is no longer intercepting the serial
interrupts. This tends to happen when someone makes changes to the serial
layer and the kgdb patch isn't updated to reflect those changes.

You failed to mention the kernel version. The kgdb stub in 2.6.10-rc2-mm3
should work OK.

Sometimes, disabling the serial drivers in .config will help.

2004-11-29 06:25:21

by 林建安

[permalink] [raw]
Subject: Re: I cannot stop execution by using "ctrl+c"


Hi Andrew,
I had tried to disable serial drivers and it still didn't work.

The platform is the malta board with MIPS CPU.
I also tried to use newer kernel 2.6.10-rc2-mipscvs and the problem still
exists.

Thanks and regards,
Colin


----- Original Message -----
From: "Andrew Morton" <[email protected]>
To: "colin" <[email protected]>
Cc: <[email protected]>
Sent: Wednesday, November 24, 2004 7:07 AM
Subject: Re: I cannot stop execution by using "ctrl+c"


> "colin" <[email protected]> wrote:
> >
> > When using gdb to debug Linux kernel, I found that it cannot be stopped
> > temporarily by using "ctrl+c".
> > After the first strike of "ctrl+c", nothing happen.
> > After the second, Linux kernel will show these messages:
> > Interrupted while waiting for the program.
> > Give up (and stop debugging it)? (y or n)
> > If choose yes, kernel will totally stop and it goes back to gdb shell.
> > How can I stop kernel temporarily and then resume it?
>
> This means that the kgdb stub is no longer intercepting the serial
> interrupts. This tends to happen when someone makes changes to the serial
> layer and the kgdb patch isn't updated to reflect those changes.
>
> You failed to mention the kernel version. The kgdb stub in 2.6.10-rc2-mm3
> should work OK.
>
> Sometimes, disabling the serial drivers in .config will help.