I have limited experience with gdb and debugging shared objects in general, so I wonder if anyone could shed some light on the behavior I am seeing.
Basically I am trying to understand the internals of a poorly-documented library. To that end, I wrote a program that makes minimal use of the library and I am trying to step through it to see what's going on.
The problem is that after a few uses of the "step" command in gdb, the program executes more than one instruction. One reason I believe this is that eventually gdb indicates that three threads have been launched, but no where in the code do I see why that might have happened.
In the past I have tried rebuilding the library with debug symbols, but that doesn't seem to get me any further. I am not even sure if this is relevant, since I thought gbd could still step through instructions without debug symbols (even if not having them meant it would give me less information).
In case it is relevant: I am debugging a 3-line program I wrote that links dynamically against the library of interest. I have the source for the library but it is complicated, so I hoped gdb would shed some light on things.
Thanks in advance!