Go programs can panic but that doesn't produce a core dump, only a stacktrace.
Go programs can panic but that doesn't produce a core dump, only a stacktrace.
For example, these articles allude to possible memory corruption:
http://golang.org/doc/articles/race_detector.html "memory corruption"
http://golang.org/doc/faq#atomic_maps
http://talks.golang.org/2012/splash.article "Go is not purely memory safe in the presence of concurrency."
While Go was designed with memory safety in mind, the specification does not guarantee memory safety. With that being said, it also doesn't preclude it (unlike C). For example, the gc implementation without parallelism (not to be confused with concurrency) is memory safe while the gc implementation with parallelism is not. This is the reason why GOMAXPROCS is always 1 in the playground and on the App Engine. There's nothing precluding a paralel implementation from also being memory safe.
I presume Go ( CGO ) will have to deal with segfaults too, and I'd like to understand what it does.
The system can be configured to do anything, don't core dump, core dump but overwrite any previous core dump, core dump in some special directory taking care not to overwrite anything, etc[1]. Of course, a process can ask for special treatment, but Go binaries are no different than default C binaries.
I wonder that if there are multiple threads / goroutines are their callchains also printed ?