Ensure correct symbol-file when attaching to a (remote) process

Aleksandar Ristovski aristovski@qnx.com
Fri Dec 21 21:12:00 GMT 2012


On 12-12-21 11:11 AM, Jan Kratochvil wrote:
> On Fri, 21 Dec 2012 07:05:37 +0100, Raphael Zulliger wrote:
>> Is there really no such mechanism in GDB?
>
> There is no such reliable mechanism in general.
>
> One could verify build-id in the target, probably that the build-id note is at
> the same VMA as present in the local symbol file.
>
> But then also many binaries/compilers do not provide build-id by default (ld
> option --build-id).

Interesting timing. I have just posted 
http://sourceware.org/ml/gdb-patches/2012-12/msg00776.html addressing 
this issue.

The check is not exhaustive, but for most practical purposes it should 
suffice. It verifies that in-memory elf header and pheaders match those 
found in the bfd.

Of course it will not detect difference in all cases, e.g. very small 
changes that do not affect loadable segment size. Example:

- static int foo;
- static int bar;
+ static int bar;
+ static int foo;

Still, it should be much better than no check at all.

---
Aleksandar



More information about the Gdb mailing list