我正在尝试使用GDB调试程序。 程序自由运行时运行正常。它使用在地址0x7efff08加载的共享库libc.so.6。 但是当我在GDB中运行程序时,加载程序会为其他地址的程序加载共享库libc.so.6。我的程序试图从原始地址(0x07efff08)读取库,在那里它找不到ELF头,因此给出错误并终止。 (无效的ELF标头:无法加载共享的libc.so.6)
请注意,我已禁用ASLR。
这与共享库重定位有关吗? GDB和myprogram(正在调试)都使用相同的共享库。 在GDB中运行时,如何确保库在同一地址空间加载?