You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下GDB调试器如何禁用ASLR?

GDB 如何禁用ASLR?

GDB默认会自动禁用ASLR,核心靠两种机制实现:

  • 修改进程的personality标志位
    Linux系统中,每个进程都有一个控制进程行为的personality属性,其中ADDR_NO_RANDOMIZE位专门用来控制ASLR。GDB在启动被调试程序时,会调用personality()系统调用,给目标进程设置这个标志位,强制关闭它的地址空间随机化,所以每次调试时main函数的地址都固定。

  • 内置配置选项控制
    GDB自带disable-randomization配置项,默认值是on(即禁用ASLR)。你可以在GDB里执行show disable-randomization查看当前状态,也可以手动用set disable-randomization off开启ASLR,或者set disable-randomization on再次关闭。

如果系统全局ASLR已经被禁用,那不管GDB怎么设置,程序地址都不会变化,但GDB的默认行为会优先覆盖系统的全局设置。

内容的提问来源于stack exchange,提问作者Bob5421

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 08:12:00