1. A computer-implemented object-oriented process for relating objects in a compiler to source code locations during an operation of compiling a source program into machine instructions for a target computer, said process comprising the steps of: a. registering source files and their ranges of line numbers for a source type; b. parsing each language element of said source program in order to create source-related compiler objects; c. creating a source object as the value of an instance variable for each of said compiler objects in order to relate it to its location in said source program; d. where a function is being inlined by said compiler into the place of a source-related compiler object representing a call on said function within the body of another function, further including the step of, for each source-related compiler object in said function being inlined, creating a duplicate compiler object having a special kind of source object that represents a call history that combines two other source objects which are: 1) the source object of said source-related object in said function being inlined; and, 2) the source object of said compiler object representing said call on said function; e. generating machine instruction objects from said compiler objects; and, f. for each of said machine instruction objects, storing in an instance variable the source object for the source-related compiler object from which it is generated.