gdb:有性能损失吗?

gdb: Is there a performance penalty?

如果我将 gdb 附加到进程,是否会有任何性能损失?我没有设置任何断点,我只是在等待一个段错误。

谢谢

Is there any performance penalty if I attach gdb to a process?

是的。

附加调试器后,有几个方面会变慢。一是线程创建/销毁——GDB需要跟踪线程,pthread库有GDB设置的钩子。

此外,GDB 总是 设置一些内部断点。其中之一在 _dl_debug_state() 上,因此 dlopen()dlclose() 也变慢了。

最后,内核会通知 GDB 程序接收到任何信号,因此任何处理大量信号的应用程序都会 运行 变慢。