Font Size: a A A

Memory Test Technology For Embedded Applications

Posted on:2012-02-18Degree:MasterType:Thesis
Country:ChinaCandidate:Z X ChenFull Text:PDF
GTID:2208330332986753Subject:Software engineering
Abstract/Summary:PDF Full Text Request
Memory errors are caused by reading and writing memory units, or executing memory allocation and deallocation operations etc. Most of the software faults and errors are related to memory. The compiler can not find the memory errors automatically because of their invisibility. It is hard to trace the memory errors in the running period and it is also interrupted by memory errors in the debugging period. The demands of software quality and safety are getting higher in the process of programming to avoid the huge expenses because of memory errors, and the software testing plays an important role. Many static and dynamic detecting technology and tools are used to find the hidden errors to increase the reliability of the software.This thesis uses static detecting technology to research the memory problems in the program. First,some examples are used to discuss the common memory problems. Second, the problem of buffer overflow is researched. It analyses the principle of buffer overflow and the methods of buffer overflow attack, and two methods of variable boundary checking and variable value range analysis are used to detect the problem of buffer overflow. Results of experimentation show that this method has better detecting capacity compared to the original tool. Then, it discusses the effectiveness of the pointers. The pointer finite-state machine model is built and the pointer fault operations set is given to judge whether it is reasonable pointer operation, through analyzing the pointers'point-to, the mapping relationship between the pointer and the pointed variable, the pointer state and the effectiveness of pointer operation. Results of experimentation show that this method can detect the problems of invalid pointer dereference and bad deallocation effectively. At last, the static code detecting system based on programming style and memory errors detecting is designed and implemented, and the results of experimental show that it has good detecting capacity using the proposed static analysis method, buffer overflow detecting method and pointer effectiveness detecting method to the static code detecting system.The thesis has several appealing properties and innovations:(1) The method of variable value range is used to detect the buffer with variable representation its capacity, and it checks the index range of the element of buffer in the cycle statement block to increase the accuracy of analysis. (2)The pointer dereference detecting method based on finite-state machine is proposed, and it is used to judge the rationality of pointer operations according to the pointer state. It enhances the analysis of the control block in the program to make the detecting results more accuracy. (3)The static code detecting system detects the code programming style, strengthens the checking capacity, and expands the scope of analysis problems as well.
Keywords/Search Tags:static detecting, memory errors, buffer overflow, pointer effectiveness
PDF Full Text Request
Related items