Skip to main content

Pointcut

Simple Story

There are millions of moments where the teacher could step in. You care about a handful.

A pointcut is the filter that picks them out: "every call to a method that opens a file". It says where. It does not say what to do once you are there.

What it is

A pointcut is a predicate over join points. It selects them by signature, by type, by annotation, or by combinations of those.

A pointcut is only as good as its coverage, and this is the central weakness of the call-site approach: the pointcut is effectively an enumerated list of call sites the weaver could find and rewrite. An operation reachable by a route the pointcut does not name is not intercepted at all.

In Ares the pointcut definitions live alongside the advice under api/aop, and the instrumentation backend uses matchers over types and methods for the same purpose.

Further reading