蹦床代码(Trampoline Code)是Go编译期自动插桩技术中代码注入阶段的核心机制。在代码注入阶段,工具会根据rule.json的配置为目标函数插入蹦床代码,它的主要作用是作为逻辑上的跳板。蹦床代码负责三个关键任务:一是处理异常情况,确保注入代码不会影响原始函数的正常执行;二是填充上下文信息,构建api.CallContext对象供hook函数使用;三是跳转到用户自定义的OnEnter和OnExit函数,完成监控数据收集或服务流量治理等实际业务逻辑。由于蹦床代码对性能影响至关重要,开发团队在AST(抽象语法树)层面对蹦床代码进行了一系列优化,确保其运行开销降到最低。蹦床代码还支持call.SetSkipCall(true)等高级控制,允许hook函数跳过原始函数的执行。




