Throw/Raise Exception From Probes

From OC Systems Wiki!
Revision as of 01:34, 18 August 2019 by Swn (talk | contribs) (Created page with "You can raise and Ada exception or throw a C++ exception from a probe. In Ada you will need to know the name of the exception you want to raise. This can be as simple as <co...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

You can raise and Ada exception or throw a C++ exception from a probe.

In Ada you will need to know the name of the exception you want to raise. This can be as simple as constraint_error or a more complex fully-qualified name pkg.child.my_exception.

In C++ you will have to provide: the exception object (usually referenced in the application program using a target expression, for example $MyExceptionObject), the exception typeinfo, a constructor, and a destructor. Below are some prototype macros which make this a little bit easier.

If you raise/throw and exception in an on_entry action of a probe, the function call will be stubbed and the exception will be raised/thrown when the probed function exits.

If you raise/throw and exception in an on_line/offset action of a probe, the exception will be raised/thrown at that point.

If you raise/throw and exception in an on_exit action of a probe, the exception will be raised/thrown when the function returns.


Ada Example

C/C++ Example