Hi.

I'm testing the David suggestions to keep a list of loaded dynamic libraries (i.e. plugins), and the currently loaded.
I declared:

   public:
       static std::string _currentlyLoading;

on RunTimeLibraryLoader.hxx. Is initialized on RunTimeLibraryLoader.cxx as:

   std::string RunTimeLibraryLoader::_currentlyLoading=std::string();

Is used it on virtual RunTimeLibraryLoader::FullyLoadLibrary, which is called from virtual RunTimeLibraryLoader::LoadLibrariesFromPath, which is called from virtual RunTimeLibraryLoader::Load. For ladspa plugins loadings (calling Load() from a derived class) it works OK. But on AutomaticRunTimeProcessingLibraryLoader (which is on RunTimeProcessingLibraryLoader.cxx, instantiates a derived class from RunTimeLibraryLoader as an object, and call the Load() from there) gaves me a segmentation fault, like if the static variable were not defined. Furthermore, trying to access directly RunTimeLibraryLoader::_currentlyLoading (for instance: RunTimeLibraryLoader::_currentlyLoading="testing";) is the same.

TraceBack:
   #0: std::string::asign       /usr/lib/libstdc++.so.6
   #1: std::string::operator=   /usr/lib/libstdc++.so.6
#2: AutomaticRunTimeProcessingLibraryLoader (the above assignation _currentlyLoading="testing")

AutomaticRun..... is instantiated as a static object. Could be that the problem? I tried defining the variable as extern, without luck...

This is making me mad... :-/ The linker doesn't says anything when compiling...

Any clue?


Regards,
Natanael.
_______________________________________________
Clam-devel mailing list
[email protected]
https://llistes.projectes.lafarga.org/cgi-bin/mailman/listinfo/clam-devel

Reply via email to