IP Library Patent Application 11748395
Patent Application
App. No. 11/748,395

Encoding of Symbol Table in an Executable

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
11/748,395
Abstract

A method of compiling source code is described in which symbol information is retained in the optimized object code and the executable file. This symbol information is retained in the form of function calls which return memory locations and enable an application to query where variable or function data is stored and then access that variable or function data.

Claims (42)

1 . A method comprising:

identifying statically allocated symbols in source code;

for each symbol identified, generating source code for a function to map between said symbol and a location associated with said symbol; and

compiling said source code and said generated source code.

2 . A method according to claim 1 , wherein said symbol comprises a symbol associated with a variable and wherein said location comprises a storage location for said variable.

3 . A method according to claim 2 , wherein said variable comprises one of a static local variable and a global variable.

4 . A method according to claim 1 , wherein said symbol comprises a symbol associated with a function and wherein said location comprises an address of an entry point for said function.

5 . A method according to claim 1 , further comprising:

generating an executable file from the compiled source code and generated source code.

6 . A method according to claim 5 , further comprising:

outputting said executable file to an embedded device.

7 . A method according to claim 1 , further comprising for each symbol identified:

generating associated data for said symbol; and

generating source code for a function to return said associated data,

and wherein compiling said source code and said generated source code comprises:

compiling said source code and said source code generated for a function to map between the symbol and a location associated with said symbol and said source code generated for a function to return said associated data.

8 . A method according to claim 7 , wherein said associated data comprises type data.

9 . A method according to claim 8 , wherein said type data comprises at least one of: a data type and a data size.

10 . A method according to claim 1 , wherein generating source code for a function to map between said symbol and a location associated with said symbol comprises:

generating a list of symbols and assigning each symbol on said list an index;

generating source code for a function to map between an index associated with said symbol and a location associated with said symbol; and

outputting said list.

11 . A method according to claim 10 , further comprising:

generating associated data for said symbol; and

generating source code for a function to return said associated data based on said index,

and wherein compiling said source code and said generated source code comprises:

compiling said source code and said source code generated for a function to map between an index associated with said symbol and a location associated with said symbol and said source code generated for a function to return said associated data based on said index.

12 . A method of encoding symbol table information in an executable, the method comprising:

processing source code to identify any statically allocated symbols within said source code;

for each identified symbol, generating source code for a function to return a location associated with said symbol; and

compiling both said source code and all generated source code.

13 . A method according to claim 12 , wherein said statically allocated symbols comprise one or more of: static local variables, global variables and functions.

14 . A method according to claim 13 , wherein if a statically allocated symbol comprises a static local variable or a global variable, said location associated with the symbol comprises a storage location.

15 . A method according to claim 13 , wherein if a statically allocated symbol comprises a function, said location associated with the symbol comprises an address of an entry point for said function.

16 . A method according to claim 12 , further comprising, for each identified symbol:

generating additional data about said symbol; and

generating source code for a function to return said additional data.

17 . A computer program comprising computer program code means adapted to perform the following steps when said program is run on a computer:

identify statically allocated symbols in source code;

for each symbol identified, generate source code for a function to map between the symbol and a location associated with said symbol; and

compile said source code and said generated source code.

18 . A computer program as claimed in claim 17 embodied on a computer readable medium.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2007
From: HODGES, STEPHEN E.; BUTLER, DAVID ALEXANDER; BALANI, RAHUL; IZADI, SHAHRAM
To: MICROSOFT CORPORATION
Reel/Frame 019337/0884 →