Initialize a backtrace accessor
Note:
The backtrace library is an unsupported feature, due to its fragility.
For more information, see
Backtraces
in the
QNX Neutrino technotes.
Synopsis:
#include <backtrace.h>
int bt_init_accessor( bt_accessor_t *acc,
bt_acc_type_t type, ...);
Arguments:
- acc
- A pointer to a bt_accessor_t structure.
This is an opaque structure that holds the identity of the thread to backtrace.
- type
- The type of backtrace to perform; one of:
- BT_SELF — backtrace the calling thread.
- BT_THREAD — backtrace a specified thread in the current process.
- BT_PROCESS — backtrace a specified thread in another process.
Additional arguments are required for BT_THREAD and
BT_PROCESS, as described below.
Library:
libbacktrace
Use the -l backtrace option to
qcc
to link against this library.
Description:
The bt_init_accessor() function
initializes the accessor with the identity of the thread to backtrace:
- To backtrace the calling thread, use:
bt_init_accessor(bt_accessor_t *acc, BT_SELF);
- To backtrace a thread in the current process, use:
bt_init_accessor(bt_accessor_t *acc, BT_THREAD, pthread_t tid);
- To backtrace a thread in any process, use:
bt_init_accessor(bt_accessor_t *acc, BT_PROCESS, pid_t pid, pthread_t tid)
Note:
The bt_acc_self global variable is a preinitialized accessor
used to backtrace the current thread.
Don't call bt_init_accessor() or bt_release_accessor()
for this variable.
Returns:
- 0
- Success.
- -1
- An error occurred
(errno
is set).
Errors:
- EINVAL
- The acc argument is NULL, or the type
is invalid.
Classification:
QNX Neutrino
Safety: |
|
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
Yes |
Thread |
Yes |