Skip to content

jimlawless/whereami

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

whereami

A Go library for code tracing

Please see the related blog post at: https://jimlawless.net/blog/posts/whereami/

whereami has one exported function: WhereAmI() which acts as a wrapper for runtime.Caller(). The WhereAmi() function returns a formatted string indicating the current source file name, function name, and line number.

The WhereAmI() function expects either one or zero integer parameters. In either case, the WhereAmI() function receives the parameters as a slice of ints. If that slice is nil, no parameters have been specified. If a parameter is specified, it will appear as entry number zero in the slice and will be passed on to runtime.Caller().

The example programs include:

src/whereami_example1.go - This is a program that shows simple, inline use of the WhereAmI() function. The output is as follows:

File: whereami_example1.go  Function: main.main Line: 15

src/whereami_example2.go - This is a program showing where the code is executing in main() and a factorial function called fact().

src/whereami_example3.go - This program demonstrates a runtime issue if you embed the call to WhereAmI() in another function that you invoke.

src/whereami_example4.go - This program fixes the issue with whereami_example3.go by specifying a depth of 2 when invoking WhereAmI() from the trace() function.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages