|
LINICE - Linux Kernel Debugger |
| 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 the people who have SoftIce experience. Linice 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 (Google "SoftIce" keyword.) The rest of the documentation (usage) is somewhat sparse for now; I will be adding it as I go. Please send me comments on how to improve on it. The following two snapshots illustrate the resemblance: (click to enlarge) 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. 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:
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. Linice 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 a 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). Where can I find the instruction manual? Since Linice is heavily based on SoftIce, you may want to Google the web for any references to its commands and how-to-use texts. Here are some of the texts that I've found quickly; they are fairly old, but they will give you most of the information and reference needed to help you going with Linice (ignore Windows-specific portions) [Chapters], [Tutorial]. Linice comes with a document that explains layout, compile, setup and basic options for Linice. Features that differ or are unique are also described there. Read the manual even if you already know how to use SoftIce. If you find a good command line reference on the web, please email me the link, so I can include it here! |
(c) 2004-2005 Goran Devic. This software is provided for free under the terms of the enclosed license.