On Thu, Aug 26, 2010 at 05:24:10PM -0500, Kumar Appaiah wrote: > And here is the backtrace with libltdl compiled with debugging > information:
Here is my final analysis: After building all libraries with debug symbols, here is the backtrace: (gdb) back full #0 0x00007ffff4b7c86b in tryall_dlopen (phandle=0x7fffffffd720, filename=0x66e6d0 "/usr/lib/scim-1.0/1.4.0/Config/socket.so", advise=0x66e3d0, vtable=0x0) at libltdl/ltdl.c:434 loader = 0x617cb0 loader_vtable = 0x7ffff6835375 handle = 0x66e4b0 saved_error = 0x0 errors = 0 #1 0x00007ffff4b7e5fe in try_dlopen (phandle=0x7fffffffd7c8, filename=0x66e528 "/usr/lib/scim-1.0/1.4.0/Config/socket", ext=0x66e445 ".so", advise=0x66e3d0) at libltdl/ltdl.c:1449 saved_error = 0x0 archive_name = 0x0 canonical = 0x66e420 "/usr/lib/scim-1.0/1.4.0/Config/socket.so" base_name = 0x66e43f "socket.so" dir = 0x66e480 "/usr/lib/scim-1.0/1.4.0/Config/" name = 0x66e460 "socket" attempt = 0x66e6d0 "/usr/lib/scim-1.0/1.4.0/Config/socket.so" errors = 0 newhandle = 0x66e4b0 __PRETTY_FUNCTION__ = "try_dlopen" #2 0x00007ffff4b7ecc5 in lt_dlopenadvise (filename=0x66e528 "/usr/lib/scim-1.0/1.4.0/Config/socket", advise=0x66e3d0) at libltdl/ltdl.c:1658 handle = 0x66e4b0 errors = 1 saved_error = 0x0 #3 0x00007ffff7b3cc0f in scim::Module::load (this=0x66e370, name=..., type=...) at scim_module.cpp:178 symbol = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x300000000 <Address 0x300000000 out of bounds>}} paths = {<std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = { _M_impl = {<std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<__gnu_cxx::new_allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<No data fields>}, <No data fields>}, _M_start = 0x66e650, _M_finish = 0x66e660, _M_end_of_storage = 0x66e660}}, <No data fields>} it = {_M_current = 0x66e650} module_path = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x66e528 "/usr/lib/scim-1.0/1.4.0/Config/socket"}} new_handle = 0x0 new_init = 0x7ffff50dfe50 new_exit = 0x66e370 #4 0x00007ffff7b0c065 in scim::ConfigModule::load (this=0x66e370, name=...) at scim_config_module.cpp:50 No locals. #5 0x00007ffff7b0bfee in ConfigModule (this=0x66e370, name=...) at scim_config_module.cpp:43 No locals. #6 0x00007ffff5b1d61a in SocketServerThread (this=0x66e090, parent=0x66dc30, args=...) at src/socketserverthread.cpp:40 exitChecking = 0x7fffffffdd80 #7 0x00007ffff5b271ed in SkimPluginManager (this=0x66dc30, includePlugins=..., excludePlugins=..., otherArgs=..., name=0x0) at src/skimpluginmanager.cpp:203 display = {static null = {static null = <same as static member of an already seen type>, d = 0x60b400, static shared_null = 0x60b400}, d = 0x66e060, static shared_null = 0x60b400} socketServerStarted = false #8 0x0000000000403a89 in main (argc=1, argv=0x7fffffffdec8) at src/main.cpp:147 fake_arg1 = 0x40516a "--noxim" fake_argv = {0x7fffffffe1dd "skim", 0x40516b "-noxim", 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} p = <incomplete type> np = <incomplete type> enabledPlugins = {<QValueList<QString>> = {sh = 0x6196b0}, <No data fields>} disabledPlugins = {<QValueList<QString>> = {sh = 0x6199b0}, <No data fields>} kAppMainThread = 0x619a30 curarg = {static null = {static null = <same as static member of an already seen type>, d = 0x60b400, static shared_null = 0x60b400}, d = 0x60b400, static shared_null = 0x60b400} verbose_level = 0 about = {mAppName = 0x404f29 "skim", mProgramName = 0x404f24 "SKIM", mVersion = 0x404f00 "1.4.5 (compiled with libscim 1.4.9)", mShortDescription = 0x405260 "KDE Frontend for SCIM Input Method Platform", mLicenseKey = 1, mCopyrightStatement = 0x404fba "(C) 2004 - 2006 LiuCougar", mOtherText = 0x404f60 "IRC:\nserver: irc.freenode.net / channel: #scim\n\nFeedback:\nscim-u...@lists.sourceforge.net", mHomepageAddress = 0x404f42 "http://www.scim-im.org", mBugEmailAddress = 0x404f2e "sub...@bugs.kde.org", mAuthorList = {sh = 0x617ff0}, mCreditList = {sh = 0x618050}, mLicenseText = 0x0, d = 0x6180b0} otherArgs = {<QValueList<QString>> = {sh = 0x618480}, <No data fields>} args = 0x619630 verbose_raw = {static null = {static null = <same as static member of an already seen type>, d = 0x60b400, static shared_null = 0x60b400}, d = 0x6198c0, static shared_null = 0x60b400} Now, the tryall_dlopen dfailure made me suspicious, and I stepped through the file, and this is what I observe: This line works fine: libltdl/ltdl.c:419 lt_dlloader loader = lt_dlloader_next (0); Then this also works fine: 427 loader_vtable = lt_dlloader_get (loader); But then, when I try to print the value of loader_vtable, here is what I get: (gdb) print *loader_vtable $40 = {name = 0x616f6c6572706c64 <Address 0x616f6c6572706c64 out of bounds>, sym_prefix = 0x726564616f6c0064 <Address 0x726564616f6c0064 out of bounds>, module_open = 0x6c616974696e6920, module_close = 0x206e6f6974617a69, find_sym = 0x640064656c696166, dlloader_init = 0x7573206e65706f6c, dlloader_exit = 0x6f6e2074726f7070, dlloader_data = 0x616c696176612074, priority = 6646882} And, more suspiciously, if I view it as a string: (gdb) print (char *)loader_vtable $41 = 0x7ffff6835375 "dlpreload" Some help from a libtool expert would be appreciated. Thanks, and sorry for not being able to solve this bug. Kumar -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org