Patent ID: 8429632

Claim:
A method for uniquely identifying a source code segment of a program that corresponds to an object code segment in the executable of the program, comprising: while executing the object code segment on an information processing device, receiving a first location identifier and a second location identifier associated with the object code segment, wherein the object code segment corresponds to at least two different source code segments of the program; identifying a first call site and a second call site within a call stack of the program using the first and second location identifiers, wherein the first and second call sites are responsible for invoking the execution of the object code segment; scanning a call table for a first call site entry of the first call site and a second call site entry of the second call site, wherein the first call site entry includes information for locating a first debugging information entry within a first compilation unit of the program and the second call site entry includes information for locating a second debugging information entry within a second compilation unit of the program; retrieving the first debugging information entry from the first compilation unit using the first debugging information entry's location information and the second debugging information entry from the second compilation unit using the second debugging information entry's location information, wherein the first debugging information entry includes an identifier of a first source code segment of the program and the second debugging information entry includes an identifier of a second source code segment of the program; and associating the first source code segment in the program with the first location identifier using the first source code segment identifier in the first debugging information entry and the second source code segment in the program with the second location identifier using the second source code segment identifier in the second debugging information entry, wherein the call table is a virtual call table and each entry in the virtual call table includes a return pointer of a virtual function in the program and an address pointer to a debugging information entry associated with the virtual function table.