support stepping into the standard libarary
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 2.5k
- Forks
- 102
- PR merge metrics
- No merged PRs in 30d
Description
godebug's current procedure for running instrumented code for a package `x` is:
- make a temp directory
- make a subdirectory `$TMP/src/x` containing instrumented versions of the source files for `x`
- run the `go` command, setting `GOPATH=$TMP:$GOPATH`. The `go` command finds our instrumented packages in `$TMP/src` and finds any other un-instrumented packages in the normal GOPATH.
That process does not work for standard library packages, though, because `$GOROOT` has to be a single directory.
Here's my current plan for working around this:
- Implement the proposal from #8 of having a permanent godebug directory that contains instrumented versions of all the packages we have seen so far. Put standard library packages in the same place, or possibly in their own `/goroot` or `/std` directory.
- From the same proposal, generate a temporary directory for every invocation of godebug and fill it with symlinks to the packages we want to instrument. The only new thing is that for all standard library packages we _don't_ want to instrument, we will need to add a symlink to the real package in `$GOROOT`.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading proposal #8 and the current godebug procedure described here, focusing on how temporary directories, GOPATH, and GOROOT are handled. Implement the planned permanent instrumented-package directory and per-invocation symlinks, including links to uninstrumented standard-library packages; done means instrumented standard-library packages can be used without breaking other standard-library dependencies.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100