How can I 'getchar()' in module code?

Bernd Petrovitsch bernd at petrovitsch.priv.at
Tue Dec 3 09:20:55 EST 2013


On Die, 2013-12-03 at 08:38 -0500, Valdis.Kletnieks at vt.edu wrote:
> On Tue, 03 Dec 2013 20:35:41 +0800,  said:
> > For debugging purpose, I want something like 'getchar()' that can pause
> > execution in the module code. Do any candidates I can choose?

You do not want that - there is way too much parallelism and
asynchronous stuff in the kernel.
Debugging with getchar() and the like pretty much works only in
single-threaded stuff ....

> The problem is that pausing execution in module code is dangerous, as if
> you hold any locks or anything like that, you can hang other threads or
> even the whole machine.
> 
> You probablhy want to be looking at the kgdb support, that is coded to
> work around a lot of the issues and you get full GDB support not just a
> getchar() pause.

Or just use printk() to print interesting values in interesting cases.

	Bernd
-- 
Bernd Petrovitsch                  Email : bernd at petrovitsch.priv.at
                     LUGA : http://www.luga.at




More information about the Kernelnewbies mailing list