What is LinICE?
Linice is an Intel x86-based, Linux source-level kernel debugger with the look and feel of SoftIce for MS Windows.
Linice is designed to be used by people who have SoftIce experience. It provides a major subset of SoftIce commands and adds a few new ones. For that reason, the documentation describing individual commands is not provided. There are a number of good resources on the Web that describe all SoftIce commands (search for "SoftIce" keyword.)
What can I use it for?
You can use Linice to debug a kernel module or a user application. You can also debug a Linux kernel. The kernel does not need to be recompiled or patched in any way. The debugger proper loads as a module into the running kernel and supports debugging using the following devices:
local VGA frame buffer
remote serial terminal
You can break into a running kernel at any time by a hotkey. Place breakpoints, single step, watch variables, etc. Multiple international keyboard layouts are supported.
Who owns/wrote Linice?
Linice does not belong to any company or organization, it is written entirely from scratch by me.
I am in no way associated with the creators of SoftIce, and don't have access to their code. I just loved their tool for Windows and decided to write the same one for Linux. After all, writing debuggers is fun! :)
Is Linice open source?
Yes! Linice is released under the GPL license. The package comes with the complete source code. If you find a bug or need a feature, you can still email me to one of the addresses provided (however, I may not be able to get to it as soon as you'd wish). If you fix a bug or add any new or interesting feature, please send me the source file(s) or a diff, so I can add it to the package and release it. Due credit will be added.
The project can be found hosted at the SourceForge site: https://sourceforge.net/projects/linice
I am looking forward to constructive feedback!
How can you help?
There are probably a number of areas where the software can be improved. One is to polish the support for 2.6 kernels. Next, this software is probably not bug-free yet :) or you may want to add a feature that would be really useful to more people... Perhaps you could grep for all the references of the "TODO" string in the source and start from there...
If you are interested in helping out but you don't know where to start, or you need any pointers, send me an email, or visit the discussion group on Google groups (link is on the home page).
Wait a minute! This is so old and it does not work anymore with new kernels!