Go does not currently (as of go1.23) emit epilogue_begin markers around where functions return. It does emit prologue_end.
The motivation here is that go is not friendly to things like ebpf return probes (uretprobe) because they inject a call frame into the stack (see iovisor/bcc#1320).
What folks do instead is simulate these return probes by finding all of the returns sites by parsing the text of the program (see iovisor/bcc#1320 (comment)). A more general approach that doesn't require access to the binary would be to store the relevant information in the line info.
Go does not currently (as of go1.23) emit epilogue_begin markers around where functions return. It does emit
prologue_end.The motivation here is that go is not friendly to things like ebpf return probes (uretprobe) because they inject a call frame into the stack (see iovisor/bcc#1320).
What folks do instead is simulate these return probes by finding all of the returns sites by parsing the text of the program (see iovisor/bcc#1320 (comment)). A more general approach that doesn't require access to the binary would be to store the relevant information in the line info.