Projects / Linice


Linice is a source-level kernel debugger for x86 systems with the look and feel of SoftIce for MS Windows. It is designed for people who are already familiar with SoftIce, but anyone can quickly get used to it. It can break into a running kernel at any time using a hotkey and supports breakpoints and single step on modules, the kernel, or user programs. It supports the VGA frame buffer, the X Window System, serial connections, and monochrome adapters.

Operating Systems

Recent releases

  •  28 Jul 2005 18:34

    Release Notes: A bug in linsym where getlogin() would return NULL for some kernels has been fixed. This fixes a linsym segfault reported by a number of users.

    •  16 Feb 2005 12:09

      Release Notes: This release adds a new source file to calculate effective address of instructions, and the functions EAddr and EValue to use it, adds code to display effective address and the target data in the register window, and implements functions “DataAddr”, “CodeAddr”, "hibyte" and "sword". Numbers can now be also written as binary, with "0b", or octal, with "0o" prefix. User variable evaluation (VAR command) was fixed, along with the not operator (!). The serial VT100 terminal can now have widths of 80 or 132 and lines of 24, 25, 48 or 50. There was a global increase of MAX_STRING from 128 to 160 to accommodate wider VT100 terminal sizes.

      •  04 Feb 2005 18:09

        Release Notes: This release implements multiple data windows (by default compiled to 4), adds a new command DATA to switch to any of them or to cycle, expands the command WD to use an additional parameter with the WD.# syntax, implements the command DEX that assigns expressions to the data windows, adds the new file i386.s that is translated from i386.asm to the gasm syntax, and fixes some Linice faults which occurred when accessing a non-valid local variable.

        •  30 Jan 2005 08:41

          Release Notes: This release improves the SERIAL command, and fixes serial init and PIC1, interrupt driven serial, and VT100 input. There is a new environment variable, LINICE, and reading input values to LINES and WIDTH commands is fixed. There is a new PCIHDR file listing all PCI devices, which should have all current PCI devices. An overflow in the output drivers was fixed. There were large changes in the breakpoint code, and the documentation was updated.

          •  26 Jan 2005 12:06

            Release Notes: This release adds a STACK command and stack window WS, a new command, CALL, to call an arbitrary function, a hook for kernel printk(), a CPU cmd to save and restore CPU registers, a SYM command, the addition of the argument "-d" to the R cmd, rewritten symbol search functions, printing of the source file name in the code window, writing of the current context in the cmd window header, and more work towards 2.6 compile process, so that it works well for kernels up to 2.6.8.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.