https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66303
--- Comment #2 from Tatsushi Inagaki <e29253 at jp dot ibm.com> --- The first invocation of runtime.Caller() with skip==2 successfully detects kickoff() in callback(), and thus returns ok==true. The problem is that the succeeding invocations of runtime.Caller() with skip==3, 4, 5, ... still continue returning ok==true. This is because callback() returns index==1 and a non-zero pc, which are recognized as valid information by runtime.Caller() in runitme/go-caller.c. I attached a gdb session of the second invocation of runtime.Caller() with skip==3.