This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [1.7] Possible dynamic linker error

Hi Dave,

Dave Korn wrote:

libraries were compiled by me on the same machine using gcc4.3.4).  When
looking at the problem using GDB, it says it is now going to jump to
subroutine A (finishConstruction()), but instead jumps to subroutine B

This could be just the ordinary sort of thing that goes on when you compile with optimisation (and hence inlining) turned on. It looks from the earlier lines like it's just constructed a std::map as part of the PluginFactory or PluginFactoryBase constructors, so if that edm::ValueMap is a derivation of std::map it might well be that finishConstruction() is correctly invoking the += operator to append an item, and gdb is showing you the source of the inlined operator function.

Here's a few pieces of additional information:

- I see this behavior with both "standard" level of optimization (whatever that is) and -O0.

- If instead of using the 400 Mb DLL, I compile the executable including all of those .o files directly, the program doesn't crash.

- I ran rebaseall on cygwin and all of the dlls in questions. It still crashes, but now crashes somewhere else.

  So I think first thing you need to do is figure out if maybe it's actually
going the right code path, and has gotten something wrong with the value of j.
 Check the value of $eip before and after that final step command and find out
exactly where you're running.

I'll try this when I get back to my office.



-- Problem reports: FAQ: Documentation: Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]