Short: Object Browser / System Explorer Author: Leif Salomonsson Uploader: dev blubbedev net Type: dev/e Version: 1.2 Requires: MUI 3.8, Installed AmigaE / ECX 1.5+ Architecture: m68k-amigaos >= 3.1.0 ; ppc-morphos >= 1.4.5 ObjectBrowser ---------------------------------------- Heavily inspired by Jason R Hulance's "Explorer" tool. ------------------------------------------------------ Main differences: o MUI GUI. o Also supports ECX binary modules. o "Browser" and "Debugger" modes. Usage: Commandline arguments CACHE/S - Load modules from cache. OBJECT/K - Specify name of initially selected object. ADDRESS/N - Specify address to inspect. Switches debugger mode on. PORT/K - Specify name of port to inspect. Switches debugger mode on. RESIDENT/K - Specify name of resident to inspect. Switches debugger mode on. SEMAPHORE/K - Specify name of semaphore to inspect. Switches debugger mode on. TASK/K - Specify name of task to inspect. Switches debugger mode on. MODULES/M - Specify directories and/or modules to load. THE MENU: File Load modules from disk.. -> This opens a file requester. Multiple files/dirs may be selected. -> Default dir is EMODULES:. -> EC/CreativE/ECX modules are supported. Load modules from cache -> This loads modules from the module cache. -> If the 'EcxCache' is found it will be used instead of the 'EmoduleCache'. Clear modules -> This unloads all modules. About About ObjectBrowser.. -> Brings up the about window About MUI.. -> Brings up the about MUI window THE GADGETS: Browser Mode ------------ "Depth" gadget shows the current browsing depth. "Go Back" gadget lets you go back up one level. "Object" gadget shows name of currently selected object. "Module" gadget shows the name of module this object resides in. Left listview contains the loaded objects. Under listview is a search gadget to quickly get to desired object by name. "Size" gadget shows the SIZEOF current object. Right listview displays the complete object by its members. "Message" gadget displays the version string for the program. Debugger Mode ------------- [Only listing gadgets that does not exist in Browser mode] "Address" gadget shows the current memory address that we want to explore as object. This gadget can be modified by user. "+" gadget increases the value in "Address" gadget by SIZEOF current object. "-" gadget decreases the value in "Address" gadget by SIZEOF current object. The cycle gadget below the right listview lets user peek/poke the value at different kinds of pointers. "@" gadget displays the current address that we can peek/poke. "+" gadget increases the value in "@" gadget by SIZEOF CHAR/BYTE/INT/WORD/LONG/FLOAT/DOUBLE. "-" gadget decreases the value in "@" gadget by SIZEOF CHAR/BYTE/INT/WORD/LONG/FLOAT/DOUBLE. "=" gadget displays the current value under the address at "@". This value can be modified by user. "Enter" gadget transfers the value in "=" gadget into the "Address" gadget as if it had been entered by user. "Status" gadget might tell you if something is/went wrong. "Auto" gadget enables/disables automatic reply of messages. "Reply Message" gadget replies an arexx message. OPERATION OF GUI: Selecting an object in left listview will make it show up in right listview. Clicking on pointers to objects or array of objects will automatically "jump" to that object. This is a step which can be revoked by pressing "Back Up" gadget at any time. Clicking on CHAR/BYTE/INT/WORD/LONG/FLOAT/DOUBLE typed member will let you peek/poke members value. Clicking on PTR TO/ARRAY OF CHAR/BYTE/INT/WORD/LONG/FLOAT/DOUBLE type member will let you peek/poke the memory pointed to by member. Holding down LEFT SHIFT while clicking on member forces its type into LONG, which makes it possible to peek/poke pointers. Holding down LEFT CTRL while clicking on member forces its type into PTR (TO CHAR), which makes it possible to peek/poke memory pointed to by members that are not pointers/arrays. NOTES: The value seen after a member in debugger mode is the actual value of the member, unless the member is an array, then the value is the address of this array. ObjectBrowser does not let you click on pointers that point below 4096 bytes (that includes NIL and all negative values). Other: For compability, ObjectBrowser's AREXX port is named "EXPLORER", and most old commands are supported. Arexx does not work for now. Have fun with this powerful tool! It's FREEWARE. Everything you do with this program you do on your own risk. History: 0.8 - first public release. 0.9 - fixed bugs in member-display. 0.9b - CreativE modules support and ECX v45 fix. ... - forgot what 0.9e - Supports new types of ECX v50. Added ability to modify memory and other improvements. Comes with MorphOS native executable as well. 1.0 - BPTR/BSTR can now be peeked/poked as well. Misc fixes, cleanups in GUI. Some documentation. 1.1 - Some fixes. Sadly no fixed arexx for now. Added commandline arguments SEMAPHORE/K, PORT/K, RESIDENT/K, TASK/K. Now starts up in browsermode by default. Use ADDRESS or above args for debugging. 1.2 - Creative 2.12 module problem fixed. Leif Salomonsson - September 2008