As far as I can tell, skip works even in the face of inlined functions, at 
least when used with runtime.CallersFrames(). It would be surprising  to me 
if it did not. Do you have any evidence to the contrary?

On Friday, August 4, 2023 at 9:51:34 AM UTC-4 sh...@tigera.io wrote:

> I was looking at replacing logrus with the new slog library in our 
> project.  I noticed that it uses runtime.Callers() with a fixed skip 
> <https://cs.opensource.google/go/x/exp/+/d63ba01a:slog/logger.go;l=240> 
> to collect the PC of the calling code, presumably to make it possible for 
> the handler to emit line number and filename.
>
> Question is: is that sound in the face of inlining functions?  I think if 
> the Info method gets inlined then the skip might be too large, for example.
>
> I remember having to change similar code in our project to use 
> runtime.CallersFrames in order to deal with inlining. Quite possible 
> there's a way to deal with an inlined PC that I wasn't aware of, but it 
> seemed wrong to me.
>
> -Shaun
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/58b0c0ef-c8be-484f-8d90-5c7ca15dcf32n%40googlegroups.com.

Reply via email to