【发布时间】:2016-05-26 05:16:32
【问题描述】:
linux中的backtrace_symbols()函数需要花费大量时间将地址转换为字符串数组,但gdb中的bt工作得很快。gdb中backtrace_symbols()和bt的功能有什么区别?
【问题讨论】:
-
你能补充一下你是如何测量时间差异的吗?
linux中的backtrace_symbols()函数需要花费大量时间将地址转换为字符串数组,但gdb中的bt工作得很快。gdb中backtrace_symbols()和bt的功能有什么区别?
【问题讨论】:
gdb 在启动时读取符号,并在后续命令调用中使用它从这些符号构建的数据结构,例如 bt。如果 gdb 对 bt 的每次调用都重复读取符号,这会使 bt 变慢,可能在速度上与 backtrace_symbols() 相当。
【讨论】: