强制 gdb 在随机地址加载共享库

xyw*_*ang 5 gdb aslr

我正在调试共享库。我发现在Linux主机上启用ASLR时可以触发该错误,而禁用ASLR时该错误消失。

我想用gdb进一步调试共享库。但是我发现它总是在固定地址加载共享库,这使得bug消失了。

有什么办法可以禁用这个 gdb 的功能吗?

ks1*_*322 6

有什么办法可以禁用这个 gdb 的功能吗?

是的,您可以set disable-randomization off在运行程序之前。请参阅gdb 文档的这一部分:

设置禁用随机化关闭

保持启动的可执行文件的行为不变。一些错误只有在程序加载到特定地址时才会抬起头来。如果在 GDB 下运行程序时错误消失,那可能是因为 GDB 在默认情况下禁用了平台上的地址随机化,例如 GNU/Linux,这些平台对独立程序执行此操作。使用 set disable-randomization off 来尝试重现此类难以捉摸的错误。