Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1995-09-14
2002-02-05
Banankhah, Majid (Department: 2151)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
C709S241000
Reexamination Certificate
active
06345383
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention concerns improvements in debugging support devices and debugging support methods for supporting the debugging of object-oriented programs and particularly concerns a support device and method which are suited to the debugging of object-oriented programs for parallel processing systems.
2. Description of the Prior Art
Since a computer program is a complex set of data processing procedures, it is actually very difficult to completely prevent the occurrence of errors in a program in its development or modification, even if the developer takes the utmost care. Thus, the developer must test a tentatively completed program and eliminate the errors (bugs) in order to increase the reliability of the program.
A debugging support device, using a debugging support method is a device which supports debugging operations and such a device supports efficient debugging of a program through functions which, for example, (1) indicate the part of the program being executed, (2) display execution information concerning the program execution (e.g. contents of the register and memory, etc.), (3) break (stop) the execution of the program at places (breakpoints) designated by the user, and (4) record the debugging history such as the user's instructions and execution information, while the program to be debugged is being executed and stopped according to the operations by the user.
Conventionally, programs were designed using data processing procedures. Data was structured in accordance with the processing procedure, and as a separate entity from the processing procedures. Such programs designed using processing procedures are called procedural programs. In such procedural programs, the source code (the program expressed in a specific programming language), which is written one statement (unit of expression, such as a declaration or an instruction) at a time, directly expresses the data processing procedures in the computer during the execution of the program.
Thus, conventional debugging support devices supported debugging by showing the part of the program being executed, by setting breakpoints, by recording the debugging history, etc. while using the statement or the line (in the source codes) as the smallest unit to be debugged.
On the other hand, object-oriented programming has become popular in recent years as a new software development means. Throughout the specification, object-oriented programming refers to a means where the actual entity to be processed by the software is expressed as an “object”. An object is a software entity where the elements that make up the structure of the object and the processing procedures which operate on those elements are respectively defined as data or attributes, and methods, processing procedures or functions. For example, one type of method is an “operation” method that operates on the data.
Programs written using object-oriented programming techniques are called object-oriented programs. In an object-oriented program, a plurality of objects, corresponding to actual entities, operate cooperatively, processing information. That occurs because of the relationships between actual entities can be easily realized on a computer. As a result, the information structure of actual entities is simulated in the software structure and software can be realized which has a clear structure and which is maintainable. Furthermore, since the contents of each module which comprises the program becomes easier to understand objectively, it becomes generally easier to make improvements in the encapsulation and reusability of each module.
Such object-oriented programming is performed with an object-oriented programming language such as Smalltalk or C++ and is generally designed using object-oriented design techniques in which programs are developed module by module.
Conceptually speaking, the program becomes a set of objects in such an object-oriented program. These objects are instantiated in the computer only during the execution of the program and the data of an object is assigned specific values only after being mapped to a memory block in the computer.
Thus, the development of a program is, for the sake of convenience, performed in the form of source code even in object-oriented programming. However, the source code in object-oriented programming is a set of class definitions which describe the characteristics of an object. Here, a “class definition” refers to a module of a program which describes the data of an object and the operations to be performed on such data. Since this class definition serves as a basis for instantiating objects, which are entities, a plurality of instances of an object may be instantiated from a single class definition. However, once objects are instantiated, they are, as a rule, separate and independent of each other and the data contents for each individual object is self-contained.
As described above, object-oriented programming is a means by which the series of methods necessary for the execution of a specific program and the data used in such a program are handled as a single unit called an object and by which a program is formed by using objects as the base execution unit.
In recent years, object-oriented programming has gained attention as a new technique that is particularly suited for programming in parallel processing system environments in which a plurality of processors perform multiple processing operations in an asynchronous manner.
In an object-oriented program, the methods and data that constitute each object cannot be freely accessed by other objects. Thus, in order to perform the operations of an object-oriented program, a structure is required by which the data necessary for the execution of the program is instantiated and then accessed using at least one method of the instantiated object.
To create such a structure, messages which invoke the methods of one object are sent by another object. That is, when a method or a part of a method is completed at one object, this object transmits a message indicating the execution thereof to another object in charge of a different part of a program or the next method. Contained in this message is information such as the name of the method to be invoked by the message-receiving object, the argument (parameter) to be passed to the method when making the method, etc.
Upon receiving a message correctly, the receiving object executes a method in accordance with the contents of the message and, when the process is ended without any problem, returns a prescribed return value as a reply message to the message-sending object as necessary. Each object can thus interoperate as expected by sending and receiving messages. On the other hand, if the program does not function as expected, the object which behaves abnormally can be found by examining and tracing the contents of messages sent and received by each object.
The debugging means in object-oriented programming are based on the concepts described above, and, in general, the operation of the entire program is investigated by examining a record (hereinafter referred to as an event history) of messages exchanged between objects during the execution of the program. As an example of where such a means is applied, there is a system in which the object to be debugged (hereinafter referred to as the debug target object) is specified and the recording object (hereinafter referred to as the debugger object) for recording the event history are set so that all messages sent and received by the debug target object are sent to and recorded by the debugger object.
However, problems arise when debugging specific objects and object-oriented application programs with conventional debugging means in parallel processing systems. With a conventional debugging means, a suitable object is selected and all messages sent and received by the object are recorded. In this case, numerous messages which are unrelated to the object or application program to be debugged are recorded in the d
Banankhah Majid
Kabushiki Kaisha Toshiba
Lao Sue
Oblon & Spivak, McClelland, Maier & Neustadt P.C.
LandOfFree
Debugging support device and debugging support method does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Debugging support device and debugging support method, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Debugging support device and debugging support method will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2947166