Skip to content

Latest commit

 

History

History
31 lines (25 loc) · 1.1 KB

README.md

File metadata and controls

31 lines (25 loc) · 1.1 KB

cgotraceback enables collecting call stacks in C code and mapping C code instruction addresses to file & function names. This package implements the callbacks specified by runtime.SetCgoTraceback. To use the package, underscore import it anywhere in your program:

import _ "github.com/nsrip-dd/cgotraceback"

By default, dladdr will be used to symbolize instruction addresses. This will give function names and the files (i.e. shared libraries or executable) the functions are in, but will not have source file names or line numbers.

On Linux, instructions from programs/libraries compiled with DWARF debugging information can be mapped to function names, files, and line numbers using libdwfl from elfutils. The library is available on most package managers:

  • Alpine: apk add elfutils-dev
  • Debian/Ubuntu: apt install libdw-dev
  • CentOS: yum install elfutils-libs

To use libdwfl, provide the use_libdwfl build tag:

$ go build -tags=use_libdwfl