OCS: Probe Library

From OC Systems Wiki!
Jump to: navigation, search

The probes in this library are yours to use, free of charge. Just copy and paste the code you need into Aprobe.

Want to share a cool probe you've written? E-mail it to us at support@ocsystems.com.

General Purpose Probes

How do I log the value of a string parameter? How do I log the contents of an array? How do I query the data in a C++ class when probing a member function? How do I reference enumeration literals in APC? How do I execute a probe only if a certain data condition is met? How can I inject a C++ exception? How can I emulate a write error? How can I inject a memory fault in C++?

Probes for Windows NT/2000

Can I call a function in my program from within a probe? Can I call a C++ method from a probe? Can I track stack usage with Aprobe? Can I call a function in another UAL?

Probes for Solaris

Is there a simple probe that just traces the lines in one routine? (trace.ual seems a bit of overkill) How can I log a string passed to a library function like strdup() where there's no debug information? Can I use Aprobe to change the command run by a call to system() from my application to run my own little script instead? How can I count the times a particular call chain occurs? How can get I get Aprobe actions to happen when my program dumps core?

Probes for GNAT (Solaris)

How do I print or change a GNAT Ada string value in my probe? I'm trying to stub a function called by my program, but APC can't seem to find it. Using Solaris GNAT, I want to send a signal to the program to control my probes. But the signal seems to get lost. Why? I have an Ada procedure that I'm stubbing out, but want to return a string value. The procedure has a declaration similar to the one below. What's the APC? Is there a way to catch and suppress exceptions?