Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/internal/obj: frame pointer missing for small functions #18103

Closed
randall77 opened this issue Nov 29, 2016 · 1 comment
Closed

cmd/internal/obj: frame pointer missing for small functions #18103

randall77 opened this issue Nov 29, 2016 · 1 comment
Labels
FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done.
Milestone

Comments

@randall77
Copy link
Contributor

func f() {
    g()
}

Generates

000000000044cc60 <main.f>:
  44cc60:       64 48 8b 0c 25 f8 ff    mov    %fs:0xfffffffffffffff8,%rcx
  44cc67:       ff ff 
  44cc69:       48 3b 61 10             cmp    0x10(%rcx),%rsp
  44cc6d:       76 06                   jbe    44cc75 <main.f+0x15>
  44cc6f:       e8 0c 00 00 00          callq  44cc80 <main.g>
  44cc74:       c3                      retq   
  44cc75:       e8 f6 85 ff ff          callq  445270 <runtime.morestack_noctxt>
  44cc7a:       eb e4                   jmp    44cc60 <main.f>

There's no frame pointer manipulation here. There probably should be, backtraces done by the kernel profiler will miss (or even be messed up?) by this omission.

Hit this issue while working on #16638. We require frame pointers on every frame to make callers work using frame pointers.
@dvyukov
@rsc
@aclements

@randall77 randall77 added this to the Go1.8 milestone Nov 29, 2016
@quentinmit quentinmit added the NeedsFix The path to resolution is known, but the work has not been done. label Nov 29, 2016
@randall77 randall77 self-assigned this Dec 1, 2016
@gopherbot
Copy link

CL https://golang.org/cl/33754 mentions this issue.

@golang golang locked and limited conversation to collaborators Dec 1, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done.
Projects
None yet
Development

No branches or pull requests

3 participants