【问题标题】:GDB: address relative to shared libraryGDB:相对于共享库的地址
【发布时间】:2017-07-10 16:05:28
【问题描述】:

我正在调试一个拒绝在我们的自定义 linux 环境中运行的程序。我无法访问其源代码,因此无法编译或添加任何内容。 问题出在它的一个共享库中,我知道大概的地址范围(仅此而已)。问题是:如何在没有人工的情况下在该位置设置断点

info sharedlibrary
<find address of library.so>
break <address of library.so>+<location>

【问题讨论】:

    标签: linux debugging gdb shared-libraries


    【解决方案1】:

    问题是:如何在没有人工的情况下在位置设置断点

    GDB(默认)禁用地址随机化。

    如果你从一开始就在GDB下运行程序(即不是attach已经运行的进程),那么你应该只需要执行一次“体力劳动”,并且在所有后续运行中重复使用相同的地址。

    更新:

    我无法从一开始就在 GDB 下运行该应用程序。我无法手动启动它。

    在这种情况下,只需在系统范围内禁用 ASLR(在调试时):

    echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
    

    【讨论】:

    • 感谢您的想法,但我无法从一开始就在 GDB 下运行该应用程序。我无法手动启动它。
    猜你喜欢
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    相关资源
    最近更新 更多