-
Notifications
You must be signed in to change notification settings - Fork 0
Jump tracing
Decoupling removes the compile-time link between sender and listener. Tracing puts back the ability to answer "who sent this, and from where".

Every script send and listen records the call site's file and line, taken from the debug facility each language engine already maintains:
| Backend | Source |
|---|---|
| UnLua / slua | the standard lua debug library |
| Puerts | v8 StackTrace
|
| AngelScript | the active context |
| C# | compiler-injected CallerFilePath
|
GMP patches none of these engines. It reads what they already track, which is why enabling tracing does not require a modified script runtime.
For C++ call sites the location comes from __FILE__ / __LINE__ carried by one expansion of
MSGKEY.
The MessageTag panel. For a selected tag it lists the script call sites, the Blueprint nodes and the assets referencing it, side by side. Clicking a script entry opens that file at that line in the IDE.
Tracing is editor-only. It is compiled out along with the message-key strings in a shipping build
(GMP_WITH_STATIC_MSGKEY defaults to !WITH_EDITOR), so it costs nothing at runtime in a packaged game
and is unavailable there.
The recorded frame is the first frame that is not GMP's own lua glue. For a call made through a wrapper of your own, the location is the wrapper, not the code that called the wrapper — one level of indirection is skipped, not all of them.
GMP · Reference wiki — one page per named thing. Guided introduction: project site · 中文站点 · measured dispatch stack Source: repository · README · README 中文
Pages here are generated from wiki/ in the main repository — edit there, not on the wiki.
Concepts
- Why a string key
- Dispatch layers
- Parameter compatibility
- Signature inference
- Key baking
- Transparent rewrite
- Jump tracing
Sending and listening
- NotifyMessage family
- ListenMessage family
- StoreObjectMessage
- MSGKEY
- FSigSource
- FSigHandle
- FGMPKey
- FGMPResponder
Dispatch internals
Reflection and data
Editor
Build