Font Size: a A A

Research And Implementation Of The Key Technologies Of The Linux Virtual Debugging System

Posted on:2011-07-01Degree:MasterType:Thesis
Country:ChinaCandidate:C L ShuFull Text:PDF
GTID:2208360308967257Subject:Computer application technology
Abstract/Summary:PDF Full Text Request
Currently, Linux kernel development engineers have never been able to find an efficient, fast debugging method.This, of course, have some relationship with Linux kernel`s open-source characteristics. Kernel developers can modify the kernel according to their own needs, but such an amendment would break the unity of the kernel. To achieve a suitable kernel debugging tools for all changes is clearly inappropriate. At the same time, the attention of debugging is not all the same(for examples: to checke the key variable or state, to implement a logical process or to give it for testers), so to achive a unified devugging tools seems even more diffcult. At present the commonly ways used in Linux kernel debugging are printk, kdb, kprobes, kgdb. User can use printk to print some information during the code executing .Printk is a way to debug a single, but it is unable to debug some of the key logic of dynamic processes, and the user interaction is poor. Kdb can not be directly used to the Linux kernel that haved beed modified. The use of kprobes tools is so complex, and the requirements is so highly(the user have hardware knowledge and familiar with the Linux system). At the same time use of kprobes need accumulation of time and experience. kgdb software suitable for remote debugging,but it need to take two machines in order to build a good environment and this take up too many resources.Based on the actual project needs, combined with Linux kernel virtual file system and the SCSI mid-level software design principles, we put forward the VTLS (Virtual Test Layer System). VTLS can be provided to developers, testers, maintainers in a way of uniform and independent of the specific kernel version. It can let the kernel module developers to decide their debugging point, execute debugging code, check the debugging result real-time. Developers can decide the command that user can enter and at the same time VTLS supports multi-kernel module debugging. The system also provides interface to test personnel who only need to enter a test cmmand. And it call the relevant kernel-related routines, and immediately see the results achieved. At the latter part of the software development, developers can debug problems through the implementation of the corresponding debug command to troubleshoot problems quickly, and identify the root of the problem, which would significantly reduce the product of the post-maintenance costs. VTLS system`s KVTM (Kernel Virtual Test Module) is designed with the idea of independence. And this way can be used to reduce the cohesion of different kernel modules, and increase the stability of the system, which make VTLS a high way in large-scale projects. The debug modules only need to use register function or unregister function to add or delete a test command in VTLS. VTLS`s UVTM(User Virtual Test Module) module can provide user the fast debug way by TAB key thinking command, up and down keys changing history command, and editing the error command. At the same time KVTM and UVTM can communicate with each other in many ways, and this can avoid single point pailure. For example, when use one way interact failures, it can use other ways(character-driven, procfs, io sharing)...
Keywords/Search Tags:debugging system, kernel module, VTLS, KVTM, UVTM, debugging code
PDF Full Text Request
Related items