I see three different outputs for where libc should be loaded.ldd shows the loading address of libc at 0xf7e9e000$ ldd ~/my_tool    linux-gate.so.1 =>  (0xf7ffe000)    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7e9e000)    /lib/ld-linux.so.2 (0x56555000)While gdb tells me it's loaded at 0xf7e96c60(gdb) info sharedlibraryFrom        To          Syms Read   Shared Object Library0xf7fe1820  0xf7ff805f  Yes (*)     /lib/ld-linux.so.20xf7e96c60  0xf7f9643c  Yes (*)     /lib/i386-linux-gnu/libc.so.6And when I manually calculate the base address based on a symbol:(gdb) print system$1 = {<text variable, no debug info>} 0xf7ebb6b0 <system>I get this address:0xf7ebb6b0-0x003b6b0 = 0xf7e80000Why is that so?calculated: 0xf7e80000gdb:        0xf7e96c60ldd:        0xf7e9e000
Why does `ldd` and `(gdb) info sharedlibrary` show a different library base address?
linux;gdb;symbols;libraries