BR 技术头条

技术头条

技术链接、资讯与社区分享流

cn www.cnxct.com / 2024-01-17 23:12 / by @技术头条 / 原作者:@CFC4N

golang uretprobe的崩溃与模拟实现

Go程序崩溃的核心原因为Go的栈在runtime管理时,被插入了异常的内存地址。Go中常见的堆栈变化为协程goroutine的创建与销毁。栈内 被插入异常内存地址是因为eBPF的实现机制是向函数的返回地址前,插入了断点指令(i386和x86_64是INT3)。 两个条件的叠加,就出现了这个错误。

发表评论