Inconsistency detected by ld.so
While running my application, i am getting a message
Inconsistency detected by ld.so: dl-fini.c: 58: _dl_fini: Assertion `i < _rtld_local._dl_nloaded' failed!
Can somebody give me a hint of what could be the reason?
Thanks and regards,
Boby
# 1 Re: Inconsistency detected by ld.so
Can somebody give me a hint of what could be the reason?
The most probable reason is that you have corrupted the memory of the dynamic linker.
It looks like the list of the loaded shared libraries contains more elements than the current count of shared libraries.
You have either corrupted this static-storage variable (_dl_nloaded), or corrupted the linked list. For instance, you might have corrupted the "next" pointer of the last node of the linked list.
Now, when the dynamic linker wants to unload all the libraries, it must first call all the termination ("fini") routines of the loaded shared libraries, and, at this point, it detects the inconsistency.
We can't say what's wrong with your program if you don't post the actual code.
# 2 Re: Inconsistency detected by ld.so
I think u are absolutly right. Because i am getting a segmantation fault when
1) i try to load another dll
2) i try to unload an already loaded dll
3) i try to launch the debugger. (I assume debugger too is trying to load some dll.)
What could be the possible reason. I think i am doing something wrong in my application which is corrupting the dynamic loader.
Any advice on this.
# 3 Re: Inconsistency detected by ld.so
What could be the possible reason. I think i am doing something wrong in my application which is corrupting the dynamic loader.
There are many many possible things, including buffer overflows.