[Bug uprobes/18171] setjmp/longjmp clashing with u[ret]probes, causing SIGSEGV or SIGILL

mjw at redhat dot com sourceware-bugzilla@sourceware.org
Thu Apr 9 21:26:00 GMT 2015


https://sourceware.org/bugzilla/show_bug.cgi?id=18171

Mark Wielaard <mjw at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mjw at redhat dot com

--- Comment #2 from Mark Wielaard <mjw at redhat dot com> ---
Just a note that it seems the same is true for the golang runtime.
Although I haven't pinpointed it precisely it seems at least some code in the
garbage collector seems to get upset when we place return probe.

e.g.

$ cat hello.go 
package main

import "fmt"

func main() {
    fmt.Printf("Hello, world.\n")
}

$ go build hello.go

$ ./run-stap -e 'probe process.function("*").call {printf("%s->%s %s\n",
thread_indent (1), ppfunc (), $$parms)} probe process.function("*").return
{printf("%s<-%s %s\n", thread_indent (-1), ppfunc (), $$return)}' -c ./hello

[...]

fatal error: panic on m stack

runtime stack:
WARNING: Child process exited with status 2

[...]

Without the process.function("*").return probe things look fine (assuming you
have the fixes for PR17957, PR17958 and PR17959).

-- 
You are receiving this mail because:
You are the assignee for the bug.



More information about the Systemtap mailing list