06 2024 档案
摘要:首先,我们需要考虑下函数调用前,我们需要做些哪些准备工作。调用时,如何切换到它对应的函数环境中,调用完后,又如何切换回来。 函数调用前准备 我们之前有介绍过函数闭包,lua 函数能像其他值(数值、字符串)一样,可以被存放在变量中,也可以存放在表中,可以作为函数的参数,还可以作为函数的返回值。(在lu
阅读全文
摘要:在做一个通用的 lua 性能监控工具,不嵌入代码,目前了解到的,比较好的方式是使用 ebpf 。 chatgpt 对 ebpf 介绍: eBPF是一种允许用户在 Linux 内核中注入自定义代码的技术,eBPF全称为 extended Berkeley Packet Filter,它提供了一种轻量级
阅读全文
摘要:RBP 寄存器栈帧回溯 栈帧:每个函数调用时,都需要在用户栈中存储一些临时变量,参数,返回地址,还有一些和函数相关的信息。在函数调用完后,栈帧会被销毁,释放,这个过程是自动的。 原理:rbp寄存器存储了当前函数栈帧地址,每当调用一个新的函数时,会先把当前函数的栈帧地址(rbp寄存器值) push 进
阅读全文