Linux GDB:相对于共享库的地址

Linux GDB:相对于共享库的地址,linux,debugging,gdb,shared-libraries,Linux,Debugging,Gdb,Shared Libraries,我正在调试一个程序,它拒绝在我们定制的linux环境中工作。我无法访问其源代码,因此无法编译或添加任何内容。 这个问题在它的一个共享库中的某个地方,我知道大概的地址范围(其他什么都不知道)。问题是:我如何在没有像这样的手工劳动的情况下在位置上设置断点 info sharedlibrary <find address of library.so> break <address of library.so>+<location> 信息共享库 中断+ 问题是:我

我正在调试一个程序,它拒绝在我们定制的linux环境中工作。我无法访问其源代码,因此无法编译或添加任何内容。 这个问题在它的一个共享库中的某个地方,我知道大概的地址范围(其他什么都不知道)。问题是:我如何在没有像这样的手工劳动的情况下在位置上设置断点

info sharedlibrary
<find address of library.so>
break <address of library.so>+<location>
信息共享库
中断+
问题是:我如何在没有像这样的手工劳动的情况下在位置上设置断点

GDB(默认情况下)禁用地址随机化

如果您从一开始就在GDB下运行程序(即,不
attach
已在运行的进程),则您只需执行一次“手动劳动”,并在所有后续运行中重复使用相同的地址

更新:

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

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


谢谢你的想法,但我不能从一开始就在GDB下运行这个应用程序。我不能手动启动它。
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space