Generating a common symbol table for symbols of independent applications
AssigneeInternational Business Machines Corporation
InventorsBarry M. Baker, Robert O. Dryfoos, Daniel S. Gritter, Colette A. Manoni, Sunil Shenoi, Gerald B. Strait, Yuk S. Tam, Mei-Hui Wang
Life of this patent
Estimating the term…
Abstract
A common symbol table is generated, which includes symbols of a plurality of independent applications. The symbols included in the common symbol table are common symbols of the applications. The bulky information associated with the common symbols are stored in the common symbol table, and stubs used to locate the common symbols are stored in local tables of the applications.
Claims21
A method of generating a table of debug information, said method comprising:
- obtaining, by a processor, a compiled application object;
- performing additional compilation processing on the compiled application object, the compiled application object comprising a local debug symbol table to be included into an executable application generated from the compiled application object, the processing to remove one or more common symbols from the local debug symbol table, to reduce an amount of debugging information stored in the local debug symbol table and to reduce the size of the executable application generated from the compiled application object, wherein the performing comprises:
- selecting a debug symbol within the compiled application object;
- determining whether the debug symbol is a common symbol based on one or more pre-determined rules of what types of debug symbols are considered common symbols;
- checking, based on the determining indicating the debug symbol is a common symbol, whether the debug symbol is in a common debug symbol table used for debugging applications, the common debug symbol table being separate from the local debug symbol table, wherein the common debug symbol table is maintained external from the compiled application object and from the executable application generated from the compiled application object, and wherein the common debug symbol table is within a global location accessible by a plurality of independent applications, the plurality of independent applications comprising the executable application generated from the compiled application object;
- removing the debug symbol from the local debug symbol table of the compiled application object and including the debug symbol in the common debug symbol table, based on the determining indicating the debug symbol is a common symbol and the checking indicating the debug symbol is not already in the common debug symbol table, wherein the removing comprises removing information associated with the debug symbol from the local debug symbol table and based on the removing, the debug symbol and the information associated with the debug symbol are omitted from the local debug symbol table included in the executable application generated from the compiled application object, and the including comprises:
- placing the information in the common debug symbol table;
- and
- placing a stub in the local debug symbol table to facilitate locating the information in the common debug symbol table during execution of the executable application.
A computer program product for generating a table of debug information, said computer program product comprising:
- a non-transitory computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:
- obtaining, by a processor, a compiled application object;
- performing additional compilation processing on the compiled application object, the compiled application object comprising a local debug symbol table to be included into an executable application generated from the compiled application object, the processing to remove one or more common symbols from the local debug symbol table, to reduce an amount of debugging information stored in the local debug symbol table and to reduce the size of the executable application generated from the compiled application object, wherein the performing comprises:
- selecting a debug symbol within the compiled application object;
- determining whether the debug symbol is a common symbol based on one or more pre-determined rules of what types of debug symbols are considered common symbols;
- checking, based on the determining indicating the debug symbol is a common symbol, whether the debug symbol is in a common debug symbol table used for debugging applications, the common debug symbol table being separate from the local debug symbol table, wherein the common debug symbol table is maintained external from the compiled application object and from the executable application generated from the compiled application object, and wherein the common debug symbol table is within a global location accessible by a plurality of independent applications, the plurality of independent applications comprising the executable application generated from the compiled application object;
- removing the debug symbol from the local debug symbol table of the compiled application object and including the debug symbol in the common debug symbol table, based on the determining indicating the debug symbol is a common symbol and the checking indicating the debug symbol is not already in the common debug symbol table, wherein the removing comprises removing information associated with the debug symbol from the local debug symbol table and based on the removing, the debug symbol and the information associated with the debug symbol are omitted from the local debug-symbol table included in the executable application generated from the compiled application object, and the including comprises:
- placing the information in the common debug symbol table;
- and
- placing a stub in the local debug symbol table to facilitate locating the information in the common debug symbol table during execution of the executable application.
A computer system for generating a table of debug information, said computer system comprising:
- a memory;
- and
- a processor in communications with the memory, wherein the computer system is configured to perform a method, said method comprising:
- obtaining, by a processor, a compiled application object;
- performing additional compilation processing on the compiled application object, the compiled application object comprising a local debug symbol table to be included into an executable application generated from the compiled application object, the processing to remove one or more common symbols from the local debug symbol table, to reduce an amount of debugging information stored in the local debug symbol table and to reduce the size of the executable application generated from the compiled application object, wherein the performing comprises:
- selecting a debug symbol within the compiled application object;
- determining whether the debug symbol is a common symbol based on one or more pre-determined rules of what types of debug symbols are considered common symbols;
- checking, based on the determining indicating the debug symbol is a common symbol, whether the debug symbol is in a common debug symbol table used for debugging applications, the common debug symbol table being separate from the local debug symbol table, wherein the common debug symbol table is maintained external from the compiled application object and from the executable application generated from the compiled application object, and wherein the common debug symbol table is within a global location accessible by a plurality of independent applications, the plurality of independent applications comprising the executable application generated from the compiled application object;
- removing the debug symbol from the local debug symbol table of the compiled application object and including the debug symbol in the common debug symbol table, based on the determining indicating the debug symbol is a common symbol and the checking indicating the debug symbol is not already in the common debug symbol table, wherein the removing comprises removing information associated with the debug symbol from the local debug symbol table and based on the removing, the debug symbol and the information associated with the debug symbol are omitted from the local debug symbol table included in the executable application generated from the complied application object, and the including comprises:
- placing the information in the common debug symbol table;
- and
- placing a stub in the local debug symbol table to facilitate locating the information in the common debug symbol table during execution of the executable application.
Dependencies are inferred from the claim text.