Reverse Pointer Look-up in a Software Debugger
Publication Date: 2010-Apr-22
The IP.com Prior Art Database
Reverse Pointer Look-up in a Software Debugger is disclosed.
Software debuggers are used widely in determining programming errors. A significant problem that programmers encounter, especially in C and C++, is determining the causes of unintentional memory overwriting. A common case occurs when a pointer references memory beyond its allocation; for example, writing past the end of an array and corrupting the contents of adjacent data. With multiple pointers in different parts of the program accessing the same memory address, figuring out which pointer corrupted the memory can be a laborious task in many cases. When the user selects this option to look-up pointers that point to (or within a specified range of) a variable or memory address, this invention will use debug data to retrieve all pointer variables and evaluate each one to obtain a list that meets the user's criteria. In the event that a memory address is corrupted, as shown in the example illustrated in Figure 1, ptr2's address has been corrupted and then an attempt to access this address is attempted which results in a SIGSEGV. In this case, the content of integer variable x was supposed to be incremented but the program terminated at this point.
The debugger will have an option to get a list of all pointers that were pointing to x. Additionally, there will be an option to list all pointers that point within a certain user-specified range of the given memory location as shown in Figure 1. The user may specify an address or choose from the list of pointers or variables as shown below.
Ȉ ˇ˄ ˙ ˝ ˛
In this example, the user chose to list all pointers that point within 20 bytes of x. The debugger will highlight all of the pointers in yellow as...