|
LINICE - Technical Q/A |
|
What Linux kernels and configurations are NOT supported? Currently, kernels 2.6.9 and above. Several people offered to tackle this problem, but there is no definite code solution yet. Next, kernels compiled with the option 4GB which place kernel symbols at the low address (unlike 80000000 or C0000000, if your symbols are listed at the address of 02000000+, Linice will currently not work with it). Linice will not work in Super-VGA / console framebuffer modes. Linice refuses to load, what can I do? Try to enable all messages (increase verbose level to 3). Run the Linsym with the option -v 3 # ./linsym -i -v 3 Next, make sure that /dev/ice does not exist. Sometimes an unsuccessful load creates it and does not delete it. You have to be a root user to run Linsym. Then, it could be an incorrect System.map file is being used, so that some important symbols don't match. Use the option -m with the Linsym to specify the path to the correct System.map. If you have a 2.6 kernel with a distribution like FedoraCore2, you are out of luck (for now). It's System.map file does not export some important symbols required for Linice to load. 2.6 support has been tested on Debian. You should be ok for kernels 2.6.8 and below with any other distributions. Linice will not work with kernels 2.6.9 and above due to some significant kernel changes (this includes FedoraCore3.) This is one area where you could volunteer to help! It seems that Linice loads, but I see garbage (or nothing) on the screen? It could be that your console runs in Super-VGA / graphics mode. Linice does not support SVGA modes (or console graphics modes). Only pure text VGA modes, monochrome and X-Windows frame buffers are supported (and remote VT100 serial terminals). I can compile and load Linice, but then it hungs? Please read the documentation first. The most likely cause is the USB keyboard. Plug in the PS/2 keyboard instead, if you can. Then read the documentation. If you loaded it under X-Window, press F5 and then use xice to make it pop up. What is the break key? Press Ctrl-Q to break into Linice. You can change it by using the "altkey" command. How can I debug my app (not a module)? At the moment, the only way to break into a user app is to hard code an INT3 inside it. You may use this define: #define INT(_x) __asm__ __volatile__("int
%0" :: "g" (_x)) INT(3); The same trick will work for a module as well; however, if you load its symbols, the debugger will break at its init_module() entry point by default. |
(c) 2004-2005 Goran Devic. This software is provided for free under the terms of the enclosed license.