Hi,
Sorry for the delay.
1. Such feature is implemented in EurekaLog 7. See:
http://www.eurekalog.com/help/eureka...tions_page.php
EurekaLog 6 doesn't have any specific support for this feature, but you may try to workaround this manually. This, however, is not pretty.
The easiest approach is to use different exception types and use exception filters to alter default processing.
For example:
procedure Caller;
begin
try
Buggy;
except
on E: Exception do
begin
StandardEurekaNotify(E, ExceptAddr);
// Code that cleanup after an exception.
raise ECallerError.Create('procedure Caller failed'); // setup exception filter for 'ECallerError', Handler = RTL
end;
end;
end;
If you can't afford custom exception types - then thingg get more complicated. You need to setup your own event handlers, which alters processing based on flags (defined by you). Those flags can set in your "except" handlers.
2. Unfortunately, it is not possible in x86-32. This may be implemented in EurekaLog for x64.
Such feature requires knowledge of source files, which is available to debugger, but usually is not present in final exe. Even if you add it (for example, by including TD32/TDS info) - x86-32 has architecture, which may prevent you from getting arguments. For example, typical calling convention for Delphi is "register". This means that arguments are passed via CPU registers. Those registers can be re-used for other purposes immediately at routine's start. Debugger can track this. External software - not so much.
x86-64 is different in this matter: there is only 1 calling convention and arguments are always accessible. (I may be wrong; this requires more investigation)