PART |
DESCRIPTION |
Extended Fatal Error Handler
• more
useful infomation about error
• configurable
error file name and path
• saves
all error files without overwriting old
|
All
possible information about crash (much much more then xppfatal.log)
stored in name&path configurable file. Even show parameters
for every function in callstack!
New: Show actual
codeblock (not only place of create, like in ProcName()) for
codeblock callstack entry.
New: Show
BEGIN SEQUENCE entries in callstack
Fixed
overwriting old xppfatal.log by new one. Old file
will be renamed to unique name (based on file date and time). |
|
|
Xbase++ Inspector
• easy way of inspecting application
• cofigurable hot-key
• unique ::threadEval() feature for Xbase++ programmers
• save/rest Inspector status between sessions
|
New:
Xbase++
Inspector is integrated
in application, hotkey activated pop-up multifunctional console. You
can press hotkey (default is one-hand Ctrl-Shift-Z) and:
• execute
multiline code in any running Xbase++ thread and see results
• view
current snapshot of opened databases of all threads
• view
full info about used memory from Xbase++ programmers point of view
• view
callstacks of all threads with
priority/workload info
|
|
|
Extended
Callstack API
• retrieving
actual parameters for any function in callstack
• retrieving
actual code blocks for codeblock calls
• retrieving
objects for method calls
|
It
is waiting since Clipper times feature to get parameter of any function
on callstack. Yes,
it here: insider():ProcParam([deep][,parNo])!
New: Another great
addition is retrieving of codeblocks/objects in callstack.
|
|
|
Extended Memory Information
• full
info about used memory
•
the
only way to determine amount of currently used variables
• statistic
of used variables by types
• statistic
of used objects
• get
reference count for any array and object
• soon modified
ErrorSys.prg to show new info
|
Determining
amount of used variables and its types very good tool to find memory
consuming functions.
Reference
counts of any array or object can help to detect unwanted links
to variables. This links prevent garbage collector from releasing
memory of such objects.
|
|
|
Xbase++
Aspect Oriented API
• wrap
any Xbase++ function
• wrap
any Xbase++ method, even hidden and protected
|
Wrapping
of any function/method (code) give new possibilities in debugging
and profiling.
Full
control of parameters and return of wrapped code.
Advice can be called before and after code.
|