c - gdb 中 backtrace(backtrace_symbols) 和 bt 的区别

标签 c linux function gdb

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/

相关文章:

C 常量表达式。 const 变量作为常量表达式

将整数复制到指针结构变量

linux - 无法在 CentOS 中更改 Python 路径

linux - 由于 expat,我无法配置 dbus

javascript - 在 JavaScript 中分配变量名称的匿名函数

javascript - IE 11 不按 Angular 4 中的日期处理 .sort() 方法

python - 组合功能以减少查询

c - 通过 C 程序管道日志输出以方便日志轮换

c - 错误: expected declaration specifiers or ‘...’

linux - 如何将 cronjob 错误保存到文件并通过电子邮件发送?