puzzle for gcc gurus

I'm trying use gdb under cygwin to debug one of the tests in the serialization library. I've done the before but only with static linking. This time, the failure only occurs when using the serialization library as a shared library. So I want to trap/trace inside the boost_serialization DLL. Using the cygwin bash shell, I get the following. $ set | grep LD LD_LIBRARY_PATH=C:/BoostRelease/bin.v2/libs/serialization/build/gcc-3.4.4/debug OLDPWD=/cygdrive/c/boostrelease Robert Ramey@rrsd01 /cygdrive/c/boostrelease/libs/serialization/test $ cat t.g file C:/BoostRelease/bin.v2/libs/serialization/test/test_diamond_text_archive.te st/gcc-3.4.4/debug/test_diamond_text_archive.exe sharedlibrary C:/BoostRelease/bin.v2/libs/serialization/build/gcc-3.4.4/debug/bo ost_serialization-gcc34-d-1_39.dll Robert Ramey@rrsd01 /cygdrive/c/boostrelease/libs/serialization/test $ gdb -x t.g GNU gdb 6.8.0.20080328-cvs (cygwin-special) Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-cygwin". (gdb) r Starting program: /cygdrive/c/BoostRelease/bin.v2/libs/serialization/test/test_d iamond_text_archive.test/gcc-3.4.4/debug/test_diamond_text_archive.exe [New thread 3952.0xb10] gdb: unknown target exception 0xc0000135 at 0x7c964ed1 Program exited with code 030000000465. You can't do that without a process to debug. (gdb) (gdb) l main 169 int test_main(int argc, char * argv[]); 170 171 #include <boost/serialization/singleton.hpp> 172 173 int 174 main(int argc, char * argv[]){ 175 176 boost::serialization::singleton_module::lock(); 177 178 BOOST_TRY{ (gdb) Things crash immediately. I believe that the exception 0xc0000135 at 0x7c964ed1 refers to the inability to load some required DLL. Note that I can list the source code of the mainline program so things do seem to get loaded. I realize that his might be off topic - but I'm sort of desparate. Any help appreciated. Robert Ramey

AMDG Robert Ramey wrote:
I'm trying use gdb under cygwin to debug one of the tests in the serialization library.
I've done the before but only with static linking. This time, the failure only occurs when using the serialization library as a shared library. So I want to trap/trace inside the boost_serialization DLL. Using the cygwin bash shell, I get the following.
$ set | grep LD LD_LIBRARY_PATH=C:/BoostRelease/bin.v2/libs/serialization/build/gcc-3.4.4/debug OLDPWD=/cygdrive/c/boostrelease
Doesn't cygwin use PATH instead of LD_LIBRARY_PATH?
I realize that his might be off topic - but I'm sort of desparate. Any help appreciated.
Patch attached. In Christ, Steven Watanabe

Actually I did find that tweaking my path permitted me to run the test with GDB. Thanks very much for spotting this error. I've been looking for this on and off for 10 days. I can't believe I made such a dumb mistake. Robert Ramey Steven Watanabe wrote:
AMDG
Robert Ramey wrote:
I'm trying use gdb under cygwin to debug one of the tests in the serialization library.
I've done the before but only with static linking. This time, the failure only occurs when using the serialization library as a shared library. So I want to trap/trace inside the boost_serialization DLL. Using the cygwin bash shell, I get the following.
$ set | grep LD LD_LIBRARY_PATH=C:/BoostRelease/bin.v2/libs/serialization/build/gcc-3.4.4/debug OLDPWD=/cygdrive/c/boostrelease
Doesn't cygwin use PATH instead of LD_LIBRARY_PATH?
I realize that his might be off topic - but I'm sort of desparate. Any help appreciated.
Patch attached.
In Christ, Steven Watanabe
Index: libs/serialization/src/void_cast.cpp =================================================================== --- libs/serialization/src/void_cast.cpp (revision 51891) +++ libs/serialization/src/void_cast.cpp (working copy) @@ -76,9 +76,10 @@ extended_type_info const * derived, extended_type_info const * base, std::ptrdiff_t difference, - bool m_includes_virtual_base + bool includes_virtual_base ) : - void_caster(derived, base, difference) + void_caster(derived, base, difference), + m_includes_virtual_base(includes_virtual_base) { recursive_register(m_includes_virtual_base); }
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Nevermind - figured it out. Robert Ramey Robert Ramey wrote:
I'm trying use gdb under cygwin to debug one of the tests in the serialization library.
I've done the before but only with static linking. This time, the failure only occurs when using the serialization library as a shared library. So I want to trap/trace inside the boost_serialization DLL. Using the cygwin bash shell, I get the following.
$ set | grep LD LD_LIBRARY_PATH=C:/BoostRelease/bin.v2/libs/serialization/build/gcc-3.4.4/debug OLDPWD=/cygdrive/c/boostrelease
Robert Ramey@rrsd01 /cygdrive/c/boostrelease/libs/serialization/test $ cat t.g file C:/BoostRelease/bin.v2/libs/serialization/test/test_diamond_text_archive.te st/gcc-3.4.4/debug/test_diamond_text_archive.exe sharedlibrary C:/BoostRelease/bin.v2/libs/serialization/build/gcc-3.4.4/debug/bo ost_serialization-gcc34-d-1_39.dll
Robert Ramey@rrsd01 /cygdrive/c/boostrelease/libs/serialization/test $ gdb -x t.g GNU gdb 6.8.0.20080328-cvs (cygwin-special) Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-cygwin". (gdb) r Starting program: /cygdrive/c/BoostRelease/bin.v2/libs/serialization/test/test_d iamond_text_archive.test/gcc-3.4.4/debug/test_diamond_text_archive.exe [New thread 3952.0xb10] gdb: unknown target exception 0xc0000135 at 0x7c964ed1
Program exited with code 030000000465. You can't do that without a process to debug. (gdb) (gdb) l main 169 int test_main(int argc, char * argv[]); 170 171 #include <boost/serialization/singleton.hpp> 172 173 int 174 main(int argc, char * argv[]){ 175 176 boost::serialization::singleton_module::lock(); 177 178 BOOST_TRY{ (gdb)
Things crash immediately. I believe that the exception 0xc0000135 at 0x7c964ed1 refers to the inability to load some required DLL. Note that I can list the source code of the mainline program so things do seem to get loaded.
I realize that his might be off topic - but I'm sort of desparate. Any help appreciated.
Robert Ramey
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
participants (2)
-
Robert Ramey
-
Steven Watanabe