有没有办法在 OpenBSD 上以编程方式显示调用堆栈?
Is there a way to show call stack programatically on OpenBSD?
Linux 具有 backtrace()
函数,这是一个 GNU 扩展。
FreeBSD 从 10.0 版开始也引入了 backtrace()
功能,NetBSD 从 7.0 版开始引入了
功能。
有什么方法可以在 OpenBSD 上完成这个吗?
在 OpenBSD 上,您可以使用 this implementation。
不确定它第一次出现的时间,但是 是 OpenBSD 6.1 的 libexecinfo,它实现了 backtrace()
和 backtrace_symbols()
函数:
{openbsd-amd64 ~}$ pkg_info libexecinfo
Information for inst:libexecinfo-0.3v0
Comment:
clone of backtrace facility found in the GNU libc
Description:
This is a quick-n-dirty BSD licensed clone of backtrace facility found
in the GNU libc, mainly intended for porting linuxish code to BSD
platforms, however it can be used at any platform which has a gcc
compiler.
Maintainer: The OpenBSD ports mailing-list <ports@openbsd.org>
WWW: https://github.com/conformal/backtrace/wiki
Linux 具有 backtrace()
函数,这是一个 GNU 扩展。
FreeBSD 从 10.0 版开始也引入了 backtrace()
功能,NetBSD 从 7.0 版开始引入了
有什么方法可以在 OpenBSD 上完成这个吗?
在 OpenBSD 上,您可以使用 this implementation。
不确定它第一次出现的时间,但是 是 OpenBSD 6.1 的 libexecinfo,它实现了 backtrace()
和 backtrace_symbols()
函数:
{openbsd-amd64 ~}$ pkg_info libexecinfo
Information for inst:libexecinfo-0.3v0
Comment:
clone of backtrace facility found in the GNU libc
Description:
This is a quick-n-dirty BSD licensed clone of backtrace facility found
in the GNU libc, mainly intended for porting linuxish code to BSD
platforms, however it can be used at any platform which has a gcc
compiler.
Maintainer: The OpenBSD ports mailing-list <ports@openbsd.org>
WWW: https://github.com/conformal/backtrace/wiki