Objective-Everything Release 5. Copyright ©1994-1998 by TipTop Software, Inc. All Rights Reserved.
Objective-Browser (OB) is used to view objects in many different ways. For example, methods, instance variables, and other object specific information of an object can be viewed and edited. OB is useful for development and debugging of Objective-Everything and plain Objective-C programs. It allows you to easily investigate the structure and methods of various objects and classes.
The Objective-Everything system provides a powerful runtime introspection system. OB is a graphical front-end to the introspection facility. OB lets you look at all kinds of dynamic runtime information, investigate program structure, and object inter-relations.
Note that OB runs in the address space of the program that you are investingating. The information that is presented in OB is live. That is, objects that you are looking at might change while you are browsing them. In addition to viewing runtime information, you can also use OB to change that information. E.g., you can change object instance variables, method implementation, etc.
OB is not a debugger. For example, you can not use OB to single-step through a running program. To do this use GDB. OB is complimentary to GDB.
OB appears as a hierarchical browsing tool, similar to the file system browser. Each node in the browser represents an object or some other piece of information (e.g., a method). Each node can have any number of subnodes. For example, when looking at an object, instance variables or methods appear as subnodes; when looking at an NSArray object, contents of the array appear as subnodes; when looking at an interpreter object, procedures and global variables appear as subnodes; etc.
In addition, each node can have a number of inspectors associated with it. Inspectors allow browser nodes to be viewed in some specific way as well as to be edited. For example, to view an implementation of a method, select it in the browser. You can then edit the method in the method inspector. This is a convenient aid to development.
OB is extensible. You can provide object-specific browser nodes and custom inspectors for any object or other piece of information in the system.
OB can be used from any application. It is dynamically loaded when needed.
To run Objective-Browser, click a menu item in Objective->Browse. Alternatively, to invoke OB starting from object obj, assumming AppKit is running, simply type:
Python |
import AppKit AppKit.browse(obj) |
Tcl |
browse $obj |
Perl |
use AppKit; browse($obj); |
ObjC |
#import <ObjCore/ObjCore.h> [TTInterp loadBrowser]; [objc_getClass("TTObjBrowser") browseFromObject:obj path:nil]; |
Object obj will be the root object in the browser.