我正在调试共享库。我发现当我在Linux主机中启用ASLR时可以触发该错误,而当ASLR被禁用时,该错误就会消失。
我想用gdb进一步调试共享库。但是我发现它总是将共享库加载到固定地址,这使得bug消失了。
有没有办法禁用这个gdb的功能?
答案 0 :(得分:3)
有没有办法禁用这个gdb的功能?
是的,您可以在运行程序之前set disable-randomization off
。
请参阅gdb documentation的这一部分:
设置禁用随机化
保持已启动的可执行文件的行为不变。只有当程序加载到某些程序时,一些错误才会使它们的丑陋头部重新出现 地址。如果在GDB下运行程序时您的错误消失了, 这可能是因为GDB默认禁用该地址 在GNU / Linux这样的平台上实现随机化 独立的计划。使用set disable-randomization off尝试 重现这些难以捉摸的错误。