Automatic gopher program generator -> Monitor Keywords
Fresh Patents
Monitor Patents Patent Organizer How to File a Provisional Patent Browse Inventors Browse Industry Browse Agents Browse Locations
     new ** File a Provisional Patent ** 
site info Site News  |  monitor Monitor Keywords  |  monitor archive Monitor Archive  |  organizer Organizer  |  account info Account Info  |  
10/20/05 | 16 views | #20050235277 | Prev - Next | USPTO Class 717 | About this Page  717 rss/xml feed  monitor keywords

Automatic gopher program generator

USPTO Application #: 20050235277
Title: Automatic gopher program generator
Abstract: A system and method for automatically generating a gopher program is provided. The system invokes a debugger and loads a type library into the debugger. The type library containing information regarding each data type used in a program. The system reads each line of a command file, wherein the command file is comprised of literal text and one or more predefined instructions. For each predefined instruction read, the system calls a corresponding function in the debugger and the debugger returns a numerical offset value based upon information in the type library. The system copies the each line of the command file to an output file, with each predefined instruction replaced with its corresponding offset value. (end of abstract)
Agent: Davidson, Davidson & Kappel, LLC - New York, NY, US
Inventors: Andrew McDermott, Christopher Cherrington, Alister Roberts
USPTO Applicaton #: 20050235277 - Class: 717143000 (USPTO)
Related Patent Categories: Data Processing: Software Development, Installation, And Management, Software Program Development Tool (e.g., Integrated Case Tool Or Stand-alone Development Tool), Translation Of Code, Compiling Code, Analysis Of Code Form, Parsing, Syntax Analysis, And Semantic Analysis
The Patent Description & Claims data below is from USPTO Patent Application 20050235277.
Brief Patent Description - Full Patent Description - Patent Application Claims  monitor keywords



BACKGROUND

[0001] Computer systems typically include software (computer programs) and hardware (the physical components), such as a central processing unit (CPU) that stores and executes software, a monitor to display output and a keyboard and mouse to accept input commands from a user, as a simple example. Complex systems include thousands of computer systems connected by a network with mass storage devices and any number of peripherals, i.e., printers, scanners, back-up systems, modems.

[0002] An operating system is a collection of system programs that allow users to run application software, such as word processors, spreadsheet programs and e-mail software on a specific set of hardware, or platform. The operating system acts as an interface between hardware, the users, and software by abstracting the real hardware of the system to present a virtual machine. The core of an operating system is generally referred to as its `kernel`, a software module that manages interaction between and among hardware and software components, resource allocation and memory access and storage.

[0003] When developing software applications for computer systems with minimal resources and I/O capabilities, the development usually occurs on a "host" system, separate from the intended "target" system, in an integrated development environment (IDE). The environment includes a number of software tools, each with a specific functionality useful for development of the application. Often during the development process, the host system needs information about the state and condition of various aspects of the target system. For example, the host system may need information regarding the type and internal state of a message queue which contains messages from system components reflecting the state of the system.

[0004] Target state information may be retrieved by reading data stored in kernel objects on the target. A gopher program is one method used to retrieve information from a kernel object by accessing a specific part of a kernel object, retrieving the information stored in that part, and returning the results in a data stream which is commonly referred to in the art as a "tape". An example of an IDE that uses gopher programs is the Tornado.RTM. Development Environment by Wind River Systems, Inc. of Alameda, Calif.

[0005] The Tornado.RTM. Inspector is a software tool within the environment that allows the user to browse a variety of target system kernel objects by sending gopher programs to the target to extract and return certain information in a tape, or stream of data. For each kernel object that can be inspected a corresponding gopher program needs to be written.

SUMMARY

[0006] A system and method for automatically generating a gopher program is provided. The system invokes a debugger and loads a type library into the debugger. The type library contains information regarding each data type required to retrieve desired state information from a target computing environment. The system reads each line of a command file, wherein the command file is comprised of literal text and one or more predefined instructions. For each predefined instruction read, the system calls a corresponding function in the debugger and the debugger returns a numerical offset value based upon information in the type library. The system copies each line of the command file to an output file, with each predefined instruction replaced with its corresponding offset value.

[0007] A method for automatically generating gopher programs is provided in accordance with an embodiment of the present invention. A type library with information on the size and structure of a plurality of data types compiled with debug information to produce a type library binary image. The plurality of data types include primitive data types and compound data types. The type library binary image is fed to the debugger. An input command file with pre-defined instructions, e.g., a command or macro, and literal text is parsed. As the file is parsed, the pre-defined instructions are identified and a corresponding function in the debugger is called to retrieve a field size and a field position from the type library binary image to calculate a specific offset value of a field in one of the compound data types. The specific offset value is substituted for the pre-defined instruction in the input command file to produce a gopher program with the literal text and the specific offset value.

[0008] A gopher program generator is provided in accordance with another embodiment of the present invention. The generator comprises a type library binary image, an input command file, a set of pre-defined instructions, and a script. A debugger is provided with a set of functions, where each of the functions corresponds to one of the pre-defined instructions. The script, which implements the generator, is constructed and arranged to compile with debug information to produce the type library binary image, feed the image to the debugger and parse the input command file for one of the pre-defined instructions in the set. The type library binary image includes information regarding each data type of interest. It should be noted that the input command file includes other data, literal text, besides the pre-defined instructions that is not modified. When a pre-defined instruction is identified, its corresponding function is called to retrieve a field size and a field position from the type library binary image to calculate a specific offset value of a field in a compound data type. The specific offset value is substituted for the pre-defined instruction in the input command file to produce a gopher program that includes the literal text and the specific offset value substituted for the pre-defined instruction.

[0009] A system for generating gopher programs is also disclosed comprising a processor and a data storage device operably connected to the processor, the data storage device including a program executable by the processor to execute the steps of the method of the present invention.

[0010] In accordance with other embodiments of the present invention, computer readable media are provided which have stored thereon computer executable process steps operable to control a computer to implement the method described above.

BRIEF DESCRIPTION OF THE DRAWINGS

[0011] FIG. 1 shows a graphical representation of a microchip and data stored thereon.

[0012] FIG. 2 shows the interaction of the components in a gopher generator according to an embodiment of the present invention.

[0013] FIG. 3 is a flowchart for the process of a gopher generator according to an embodiment of the present invention.

DETAILED DESCRIPTION

[0014] For purposes of this detailed description, familiarity with the gopher scripting language as implemented in the Tornado.RTM. IDE is presumed. Detailed discussion of the gopher language is provided in Tornado.RTM. 2.0 API Programmer's Guide, available from Wind River Systems, and in WIPO publication no.: WO 98/09208, the contents of which are expressly incorporated herein by reference.

[0015] Manually generating a gopher program to extract data from a kernel is both time consuming and error-prone. It also requires a deep understanding of both the host toolchain and target architectures. Any change that affects kernel data structures requires existing gopher programs to be reviewed. If any part of a gopher program needs modification, the entire program must be re-created.

[0016] A method for creating a gopher program is provided in accordance with an embodiment of the present invention. The method includes the steps of reading and parsing a command file. The command file includes a mixture of literal text and predefined instructions (commands). Prior to parsing the command file, a debugger is started and a type library is loaded. This type library contains information about the size and structure of all data types to be used. Generally, there are two kinds of data types, primitive data types and compound data types. Primitive data types are defined by the particular programming language, for example, "int" and "char" types in C. Compound data types are user-defined, e.g., data structures in the programming language C, and include primitive data types and sometimes, other compound data types. As the parser reads the command file, literal text is copied directly to the output gopher program. For each predefined instruction encountered, a corresponding function in the debugger will be called which will return an appropriate numerical value based upon the information in the type library. This numerical value will be copied to the output gopher program in place of the predefined instruction.

[0017] An exemplary implementation of the system and method according to an embodiment of the present invention is presented herein as it would operate in the Tornado.RTM. IDE. It should be noted that the principles and concepts disclosed herein may be applied to the use of gopher programs on any platform.

[0018] The mechanism for reading arbitrary data structures in the Tornado environment is the WTX (Wind Tool Exchange) Application Programming Interface (API), and specifically a C function (for example) entitled `wtxGopherEval( )`. This function accepts a gopher program and forwards it to the target system for execution. The function also returns the gopher results in a "tape" (i.e., data stream).

[0019] As an example, assume the data structure in Table 1 is an object from which information is to be retrieved via wtxGopherEval( ). The object of Table 1 is entitled "msg_q" and defined as type "struct" (in C, a user-defined data structure) in the first and second lines. In the lines that follow, the fields of the data structure are defined first with their type, "int" (integer) and then names, e.g., options, maxMsgs, maxMsgLength, etc. The fields are examples of primitive data types and the data structure, which is user-defined, is an example of a compound data type that includes not only primitive types, but compound types as well (the "msg_q" variable)

1TABLE 1 Data structure. typedef struct msg_q /* MSG_Q */ { struct msg_q *next; /* next message */ int options; /* message queue options */ int maxMsgs; /* max number of messages in queue */ int maxMsgLength; /* max length of message */ int maxMsgsQueued; /* max number of messages queued */ int sendTimeouts; /* number of send timeouts */ int recvTimeouts; /* number of receive timeouts */ } MSG_Q;

Continue reading...
Full patent description for Automatic gopher program generator

Brief Patent Description - Full Patent Description - Patent Application Claims
Click on the above for other options relating to this Automatic gopher program generator patent application.
###
monitor keywords

How KEYWORD MONITOR works... a FREE service from FreshPatents
1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored.
3. Each week you receive an email with patent applications related to your keywords.  
Start now! - Receive info on patent apps like Automatic gopher program generator or other areas of interest.
###


Previous Patent Application:
Live set transmission in pipelining applications
Next Patent Application:
Computer system with two operating system for automatically downloading updated information and method thereof
Industry Class:
Data processing: software development, installation, and management

###

FreshPatents.com Support
Thank you for viewing the Automatic gopher program generator patent info.
IP-related news and info


Results in 1.83362 seconds


Other interesting Feshpatents.com categories:
Tyco , Unilever , Warner-lambert , 3m