I think you're not being clear on your problem you're trying to solve.
There are no "memory leaks" in Go in the traditional sense (omitting to free an allocation) because of the garbage collector. Therefore, if memory is not being freed in a pure Go program, it's because you are keeping a reference to it somewhere - e.g. in a global variable, directly or indirectly. Or it could be referenced from a local variable in a goroutine which isn't terminating - in that case I'd say that's a goroutine leak, not a memory leak. Is that the sort of thing you're trying to debug?
Or, is the situation that you're using CGO and forgetting to free some allocations in your C code?
Or, I've seen some people complain that Go doesn't not release unused memory back to the operating system as quickly as they'd like or expect, showing as high RSS. If that's your issue then it can be discussed.