# `vm:testing.unsafe.trace-entrypoints-fn` pragma This pragma is used for testing purposes in the test suite. Example: ```dart void hook(String functionName, int entryPointId) { // ... } class C { @pragma('vm:testing.unsafe.trace-entrypoints-fn', hook) void foo(T x) { // ... } } ``` When `foo` is invoked, `hook` will be called in `foo`'s prologue if `foo` was compiled with multiple entry points. `hook` will be passed the name of the function it was called for and the ID of the entry point used for the invocation: - 0: Normal entry. - 1: Unchecked entry: prologue was short so separate prologues for normal and unchecked entry were compiled. - 2: Unchecked shared entry: prologue was long, so normal and unchecked entry set a temporary and type-checks are predicated on the temporary.