Linux 中的 backtrace_symbols() 函数需要花费大量时间将地址转换为字符串数组,但 gdb 中的 bt 运行速度很快。backtrace_symbols() 和 gdb 中的 bt 的功能有什么区别?
最佳答案
gdb 在启动时读取符号,并在后续命令调用中使用它从这些符号构建的数据结构,例如 bt。如果 gdb 为 bt 的每次调用重复符号读取,那会使 bt 变慢,速度可能与 backtrace_symbols() 相当。
关于c - gdb 中 backtrace(backtrace_symbols) 和 bt 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37452135/