History log of /openbsd-current/sys/sys/stacktrace.h
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.4 26-Apr-2023 claudio

Implement dt(4) utrace support on amd64 and i386.

This adds stacktrace_save_utrace() to extract and save the userland stack
which is stubbed out on most archs. alpha and riscv64 do not even implement
dt(4) and stacktrace_save_at() so the stubs are excluded there.

Additionally add a new ioctl DTIOCGETAUXBASE which allows btrace to
fetch the AUX_BASE vallue from the AUX vector of a process.

OK mpi@ (some time ago) discussed with kettenis@


Revision tags: OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE
# 1.3 18-Apr-2020 visa

Sync existing stacktrace_save() implementations

Upgrade stacktrace_save() to stacktrace_save_at() on architectures where
the latter is missing. Define stacktrace_save() as an inline function
in header <sys/stacktrace.h> to reduce duplication of code.

OK mpi@


# 1.2 25-Mar-2020 mpi

Introduce stacktrace_save_at() and make use of it in dt(4).

This variant of stacktrace_save() takes an aditionnal argument to skip
an arbitrary number of frame. This allows to skip recording frames used
to execute the profiling code and produces outputs easier to understand.

Inputs from and ok visa@


# 1.1 20-Jan-2020 visa

Separate the stack trace saving interface from ddb. The saving does not
require the debugger on most architectures, and the separation makes the
code easier to use from other subsystems.

The function definitions are still conditional to DDB. However, that
should not matter for now.

OK deraadt@, mpi@


# 1.3 18-Apr-2020 visa

Sync existing stacktrace_save() implementations

Upgrade stacktrace_save() to stacktrace_save_at() on architectures where
the latter is missing. Define stacktrace_save() as an inline function
in header <sys/stacktrace.h> to reduce duplication of code.

OK mpi@


# 1.2 25-Mar-2020 mpi

Introduce stacktrace_save_at() and make use of it in dt(4).

This variant of stacktrace_save() takes an aditionnal argument to skip
an arbitrary number of frame. This allows to skip recording frames used
to execute the profiling code and produces outputs easier to understand.

Inputs from and ok visa@


# 1.1 20-Jan-2020 visa

Separate the stack trace saving interface from ddb. The saving does not
require the debugger on most architectures, and the separation makes the
code easier to use from other subsystems.

The function definitions are still conditional to DDB. However, that
should not matter for now.

OK deraadt@, mpi@


# 1.2 25-Mar-2020 mpi

Introduce stacktrace_save_at() and make use of it in dt(4).

This variant of stacktrace_save() takes an aditionnal argument to skip
an arbitrary number of frame. This allows to skip recording frames used
to execute the profiling code and produces outputs easier to understand.

Inputs from and ok visa@


# 1.1 20-Jan-2020 visa

Separate the stack trace saving interface from ddb. The saving does not
require the debugger on most architectures, and the separation makes the
code easier to use from other subsystems.

The function definitions are still conditional to DDB. However, that
should not matter for now.

OK deraadt@, mpi@