我正在调试一个共享库。我发现当在Linux主机启用ASLR时可以触发该bug,而当禁用ASLR时该bug消失。 我希望使用gdb进一步调试共享库。但我发现它总是将共享库加载到固定的地址,这使得该bug消失了。 有没有办法禁用gdb的这个特性?
有没有办法禁用gdb的这个功能?是的,您可以在运行程序之前使用set disable-randomization off。请参见gdb文档中的以下部分: set disable-randomization off 保留已启动的可执行文件的行为不变。某些错误只有在以特定地址加载程序时才会出现。如果您在GDB下运行程序时发现错误消失了,那可能是因为GDB默认禁用地址随机化(对于像GNU/Linux这样为独立程序做的平台而言)。使用set disable-randomization off尝试重现此类难以捉摸的错误。