Troubleshooting
In the programming of hardware dependent software, driver or realtime applications it is common that errors appear. Different from pure application development, doing little mistakes often influences more than only the appearance of a "polite" message-box on the display. Because, all protection measures are suspended on kernel level! The basic rule: keep calm! (nearly) everything has a cause... If you get in contact with us, please describe detailed the circumstance and the effect of the error. Here is a little glossary to help you:
- "Curious behavior"�The code does not work as expected. You can either clarify it with our debugger (e.g. also switching into application mode to test kernel code) or you use our Kernel Tracer and check all function arguments of validity.
- "Error" - The call of a function returns an error code. Please notice the hexadecimal representation. It is sure, that the functions do not have to be called in a lucky way but to catch the error code and analyze it afterwards! Please take a look into the manual for the structure of error codes (part. 2.3)!
- "Crash"�The application program is aborted by the system, a message box appears. The debugger will show you the erroneous part of code.
- "Stucked"�The system stands or seems to stand. Either the interrupts are blocked and the CPU loops on the erroneous part of code or an interrupt will be circularly accessed, because the quitting misses.
- "BlueScreen"�A blue screen with cryptic code, nonsense text and some addresses. Please note the code as they are shown, they could be helpful!
- "Reboot of PCs"�Essentially a BlueScreen, you have not switched off the automatically reboot, yet. But even if you already did, it is a "Double-Fault" (very rare).
Error: The PC is rebooting !
You probably didn't switched off the "execute automatic reboot". You, as a software developer, should generally switch it off for getting some information if a "BlueScreen" appears. Under Windows XP e.g. you can reach this with:
- system control > system > extends > start and recover > settings > deselect mark "reboot automatically"!
Error: A "Bluescreen" occurs!
Essentially, the event is BSOD = blue screen of death. Thereby you get some information, which could be useful in some cases. For example, you could send us the information via e-mail to support troubleshooting. Important bluescreen information could look like:
0x000000D1 (0xC0000005, 0x00000000, 0x0000001C, 0xF2B040C4)
Sometimes you can see something like that at the end:
... address = 0xF2B040C4, base = 0xF2A00000 ...
The rest is not really important. Anyhow, the number values could help to find the cause of error. These two pieces of information are the most important: "addr" and "base", because they could directly refer to the error source. The email for us, could look like this:
D1 (C0000005, 0, 1C, F2B040C4) addr F2B040C4 base F2A00000
These information would be enough. Please no display screens!
Hint: The error code FC means, that you need a update to the latest version 7.51 of our software to support the NX feature of the new CPUs.
Error: Kernel-Relocation has been aborted!
The execution of a callback function works on the application level, but on the kernel-level a bluescreen occurs.
For the usage of the function KS_createCallBack you should create listing files of the kernel level code and analyze these for information like if the function was called, which are not allowed. Listing files will be automatically created by the relocation code, if you create a DWORD value with the name "GenerateListing" in the registry:
HKLM \ SOFTWARE \ Kithara \ Modules \ Kernel
The possible values are:
0 = Create no listing file
1 = Create listing file, continue
2 = Create listing file, with error code KSERROR_OPERATION_ABORTED aborted
The value 2 allows for the analysis of listing files, without the occurrence of a bluescreen (preconditioned, the error code will be analyzed and further program executing will be aborted!). The files will be written in the actual directory with the name kreloc01.lst and so on.
If a content of a listing file should have some conspicuity, it is possible that data sectors will be accessed, which are not in the shared memory or on stack. It would help to comment out step by step to isolate the error.
Error: code does not work correctly!
Today, where the trend goes to the enhancement of computer performance by a parallel code execution (Multi-Processing, Hyperthreading, Multi-Core...), it is hard to use a debugger for tracing errors in a sensible way. A debugger influences the run, which is used for multiple parallel threads, and hinders the correct program execution.
Helping tools would be a tracer or a messenger logger. They influence the run only for a short time. Furthermore, all events in the system must be repeated in the chronological way in which they occurred. The synchronization has to be for multiple threads, process and also for multiple CPUs (real-time message logger). The Kithara �Kernel Tracer� has got all of these mentioned properties.
If your code does not work as expected, please first use the Kithara Kernel Tracer. It provides the following aspects:
- Chronology of function calls from different threads
- Time difference between function call and period of calculatings steps etc.
- Encapsulated code execution on multiple logical CPUs
- Delivering parameter to KS_...- functions
- Occuring error
If you should send us a log file (please only if requested!), it has to be zipped!
Error : What is so special in my system?
If you cant clarify an error, send us (if requested!) precise information about your system:
system information file:
start menu > programs > accessories > system programs > system information > menu "save file..." (as *.NFO-file).
Please send us this file zipped via e-mail.
registery database
Furthermore, we need some information out of your Windows registry:
1)
start REGEDIT.EXE
2)
mark hub HKLM \ SOFTWARE \ Kithara
3)
export this hub (file > export...) as REG file
4) Please do it like this in all other hubs, which are like HKLM \
SYSTEM \ CurrentControlSet \ Services \ Kithara-... , that means all
hubs, which begin with "Kithara-"
Please send us the particular REG files zipped!
Error
Don't worry! Errors happen to everybody, sometimes to us too. Rest assured that the software is unchanged in the biggest parts, it is well-engineered and in use for thousands of PCs for years. As a result of this, it is worth it to search yourself, e.g. with the useful Kernel Tracer. If you are still stuck, please contact us! Please have patience, customers with a valid support contract are privileged to customers without. Otherwise, please contact us in the support formula or e mail (support at kithara dot de)!