5 research outputs found

    PT4C : a C program tracer

    Get PDF
    Program analysis tools can be useful to the software engineer to aid in program understanding. Program understanding can include the discovery of dynamic memory errors, the ability to track pointers, and the ability to follow variable dependencies in a target code. Many program analysis tools exist, but few of them have the capability to perform point specific, inter-procedural program analysis. We present a program analysis tool that is point specific and inter-procedural. In addition, it is also capable of detecting pointer and dynamic memory errors. These errors include unassigned pointers, dangling pointers, memory leaks, and double-frees. The tool\u27s point specific analysis provides detailed statement level data flow information including in-set, read-write pairs, and pointer graphs

    Inter-procedural pointer analysis targeting systems software

    Get PDF
    Pointer Analysis is critical for analyzing systems software written in \u27C\u27. Systems software like Linux, in general make heavy use of pointers, structures, and function pointers. Developers often spend significant time and find it very tedious to chase pointers to understand complex interactions within systems software. The problem is even worse for novices who are getting trained. Moreover, without a tool for automating the analysis, users are more likely to make errors in analyzing large software. This thesis presents a tool called SysProbe, which can help the user to easily navigate through complex systems software. The tool uses a flow and context sensitive pointer analysis algorithm to analyze the source code

    Points-to Analysis for Program Understanding

    No full text
    Real world programs (in languages like C) heavily make use of pointers. Program understanding activities are thus made more difficult, since pointers affect the memory locations that are referenced in a statement, and also the functions called by a statement, when function pointers are used. The programmer needs to build a mental model of the memory use and of the pointers to its locations, in order to comprehend the functionalities of the system. This paper presents an efficient flow insensitive context insensitive points-to analysis algorithm capable of dealing with the features of the C code. It is extremely promising with regard to scalability, because of the low complexity. The results are valuable by themselves, as their graphical display represents the points-to links between locations. They are also integrated with other program understanding techniques like, e.g., call graph construction, slicing, plan recognition and architectural recover

    Points-to Analysis for Program Understanding

    No full text
    Program understanding activities are more difficult for programs written in languages (such as C) that heavily make use of pointers for data structure manipulation, because the programmer needs to build a mental model of the memory use and of the pointers to its locations. Pointers also pose additional problems to the tools supporting program understanding, since they introduce additional dependences that have to be accounted for. This paper extends the flow insensitive context insensitive points-to analysis algorithm proposed by Steensgaard, to cover arbitrary combinations of pointer dereferences, array subscripts and field selections. It exhibits interesting properties, among which scalability resulting from the low complexity and good performances. The results of the analysis are valuable by themselves, as their graphical display represents the points-to links between locations. They are also integrated with other program understanding techniques like, e.g., call graph construction, slicing, plan recognition and architectural recovery. The use of this algorithm in the framework of the program understanding environment CANTO is discussed
    corecore