
1 Ediacaran Aug 19, 2022 via iPhone unwind |
2 0o0O0o0O0o Aug 19, 2022 libunwind |
3 huangya OP |
4 microxiaoxiao Aug 19, 2022 via Android 我觉得你需要的是 ptrace ,嘻嘻。 |
5 Madcrow Aug 19, 2022 函数里调用一下: ``` #include <stdio.h> #include <execinfo.h> void print_trace(void) { char **strings; size_t i, size; enum Constexpr { MAX_SIZE = 1024 }; void *array[MAX_SIZE]; size = backtrace(array, MAX_SIZE); strings = backtrace_symbols(array, size); for (i = 0; i < size; i++) printf("%s\n", strings[i]); puts(""); free(strings); } ``` |
6 Inn0Vat10n Aug 19, 2022 简单的方式,while true 或者 sleep, gdb/pstack 看 |
7 by73 Aug 21, 2022 如果内核比较新的话,可以考虑用 bpftrace ,但是这玩意编译比较痛苦。。用它依赖的 [uprobe]( https://www.kernel.org/doc/html/latest/trace/uprobetracer.html) 相对来说也可行,不过我没咋研究过 |