12345678910111213141516171819202122232425262728293031323334 |
- /* SPDX-License-Identifier: GPL-2.0 */
- #ifndef _LIBLOCKDEP_LINUX_STACKTRACE_H_
- #define _LIBLOCKDEP_LINUX_STACKTRACE_H_
- #include <execinfo.h>
- struct stack_trace {
- unsigned int nr_entries, max_entries;
- unsigned long *entries;
- int skip;
- };
- static inline void print_stack_trace(struct stack_trace *trace, int spaces)
- {
- backtrace_symbols_fd((void **)trace->entries, trace->nr_entries, 1);
- }
- #define save_stack_trace(trace) \
- ((trace)->nr_entries = \
- backtrace((void **)(trace)->entries, (trace)->max_entries))
- static inline int dump_stack(void)
- {
- void *array[64];
- size_t size;
- size = backtrace(array, 64);
- backtrace_symbols_fd(array, size, 1);
- return 0;
- }
- #endif
|