Contents

Component IDEDebug

comment:
Contains

IDE::Debugger (Stack Level Editor)
to invoke Debugger from your code send "halt" message to every Object.
Do not forget to enable debuging (standard is on) in system menu

IDE::ErrorStack
It parse the tcl error message an can show it es method list

IDE::TrackerBrowser
It can track the messages call to Xotcl Objects.
To enable tracking
1. Choose one class and invoke menu Class>Track this Class
2. You can also track one object (use menu in object browser)
3. Invoke Tracker Browser from system menu
Classes Classes Hierarchy Objects

Class IDE::CallingCoverBrowser

superclasses:
IDE::Browser
Instprocs:
getTitle {}
specificInit {}
Procs:
newBrowser {}

Class IDE::CoverClassView

superclasses:
IDE::ClassView
Instprocs:
changeViewType {type}
fillMenuStruct {ms}
init {args}
refreshBaseView {}
resetResults {}
selectFor {dummy}

Class IDE::CoverMethodView

superclasses:
IDE::MethodView
Instprocs:
changeViewType {type}
init {args}
selectFor {class categories type}

Class IDE::DebugMethodListView

superclasses:
IDE::StackMethodListView
Instprocs:
getMenuStruct {}
selectItem {item}

Class IDE::DebugSubObjectsView

superclasses:
IDE::SubObjectsView
Instprocs:
fillMenuStruct {ms}
inspectCalledObject {}

Class IDE::Debugger

superclasses:
IDE::Browser
comment:
The debugger is based on my halt
procedure by invoke this IDE::Debugger startDebugging is invoked.
This build debugger window an let user to view state of procedure call
based on introspection of stack levels.

To prohibite the next invokation of program the own event loop will
be build. See startBrowsing method. All tk events modifity action varible.
The loop use tkwait method to register modifikation of this variable
by resume the debugging loop will be exited an the normall program flow
will be continued

Instprocs:

destroy {}
displayIndex {index}
displayLevelVar {var}
editSave {value}
evalAtLevel {string}
evalLevel {string}
inspectCalledObject {}
inspectLevel {level}
inspectLevelVar {var}
showArguments {}
specificInit {}
startBrowsing {}
substituteAtLevel {string}
substituteLevel {string}
Procs:
initializeAfterLoad {}
newBrowser {}
startDebugging {}

Class IDE::DebuggerMethodEdit

superclasses:
IDE::MethodEdit
Instprocs:
evalDisplaySelection {}
evalInspectSelection {}
evalSelection {}
evalSelectionAction {}
evalSubstituteSelection {}
setEvaluationRet {string}

Class IDE::ErrorStack

superclasses:
IDE::Browser
Instprocs:
editSave {value}
inspectObjectFromStack {level}
parseErrorInfo {pinfo}
showErrorInfo {}
specificInit {}
Procs:
activate {}
deactivate {}
newBrowser {errorInfo}

Class IDE::LocalVarsView

parameter: {label {Local Vars}}
superclasses:
IDE::VarsView
Instprocs:
editSave {value}
getMenuStruct {}
selectItem {var}
showLevel {alevel}
showVarValue {var}

Class IDE::StackMethodListView

superclasses:
IDE::MethodListView
subclasses: IDE::DebugMethodListView
Instprocs:
fillMenuStruct {ms}
findNextMethodPlace {method index}
inspectObject {}
selectItem {item}

Class IDE::TrackedMethodList

superclasses:
IDE::ListView IDE::GUICommands
Instprocs:
fillMenuStruct {ms}
getMenuStruct {}
removeTrackItem {actual}
updateList {}

Class IDE::TrackerBrowser

superclasses:
IDE::Browser
comment:
Trackerbrowser can show all calls to speciefie object or class
it work with object IDE::MethodTracker

Instprocs:

specificInit {}
Tracker browser use filter mechanismus of XOTcl to protocol all call to specified object or class. The user can choose what will be tracked and which information should be displayed
Procs:
addToProtocol {text}
addToTrackList {item}
newBrowser {}
openBrowser {}
removeFromTrackList {item}

Object IDE::MethodTracker

comment:
This object manage tracking of classes and objects.
By initializing it make new filter method to xotc::Object.
This method is used to redirect all call to IDE::MethodTracker.
It handle adding and deleting tracking by settings filters and
redirect the calls to IDE::TrackerBrowser.

Procs:

getTrackingList {}
initializeAfterLoad {}
methodEntry {calledclass object calledproc callingclass callingobject callingproc mArgs}
methodExit {calledclass object calledproc callingclass callingobject callingproc returnValue}
registerClassForTracking {class}
registerObjectForTracking {object}
setObjectFilterMethod {}
unregisterClassForTracking {class}
unregisterObjectForTracking {object}