Usually it means that you asked a shared library to do something stupid, E.g. providing a parameter as an empty pchar without allocating memory for it, buffer overruns, mixing up by reference and by value, wrong calling convention, trying to pass pascal strings to a library written in another language, misaligned records, etc. It is usually not the shared library that is at fault, but the way the programmer tries to use it. This may also occur in OS provided shared libraries, like Windows dll's. Garbage in, garbage out.