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 程序接收到任何信号,因此任何处理大量信号的应用程序都会 运行 变慢。
如果我将 gdb 附加到进程,是否会有任何性能损失?我没有设置任何断点,我只是在等待一个段错误。
谢谢
Is there any performance penalty if I attach gdb to a process?
是的。
附加调试器后,有几个方面会变慢。一是线程创建/销毁——GDB需要跟踪线程,pthread库有GDB设置的钩子。
此外,GDB 总是 设置一些内部断点。其中之一在 _dl_debug_state()
上,因此 dlopen()
和 dlclose()
也变慢了。
最后,内核会通知 GDB 程序接收到任何信号,因此任何处理大量信号的应用程序都会 运行 变慢。