[odb-users] libc++abi.dylib: terminating with uncaught foreign exception

Adnan RIHAN axel50397 at gmail.com
Mon Oct 27 14:21:39 EDT 2014


On 27 octobre 2014 at 15:33:42, Boris Kolpackov (boris at codesynthesis.com(mailto:boris at codesynthesis.com)) wrote:

> You can try to rebuild the ODB runtimes to use libstdc++ as I described
> in my previous email and then see if that helps your application that
> is built from QtCreator.

For reference, configured with “./configure”, this is the default “otool” output for the runtime libs, on my computer (OSX 10.9.5, Xcode 6.1, using clang):
> ~ % otool -L /usr/local/lib/libodb{,-sqlite,-qt}.dylib
> /usr/local/lib/libodb.dylib:
> 	/usr/local/lib/libodb-2.3.dylib (compatibility version 0.0.0, current version 0.0.0)
> 	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
> 	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
> /usr/local/lib/libodb-sqlite.dylib:
> 	/usr/local/lib/libodb-sqlite-2.3.dylib (compatibility version 0.0.0, current version 0.0.0)
> 	/usr/local/lib/libodb-2.3.dylib (compatibility version 0.0.0, current version 0.0.0)
> 	/usr/lib/libsqlite3.dylib (compatibility version 9.0.0, current version 158.0.0)
> 	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
> 	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
> /usr/local/lib/libodb-qt.dylib:
> 	/usr/local/lib/libodb-qt-2.3.dylib (compatibility version 0.0.0, current version 0.0.0)
> 	/usr/local/lib/libodb-2.3.dylib (compatibility version 0.0.0, current version 0.0.0)
> 	/Users/Max13/Qt/5.3/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.3.0, current version 5.3.2)
> 	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
> 	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)

I’ve compiled the 3 runtime libs with:
> ./configure CC=clang CXX=clang++\ -stdlib=libstdc++ LDFLAGS=-L/usr/lib LIBS=-lstdc++

To be sure, I’ve added /usr/lib because I had GCC-4.9 installed. Here is the otool:
> ~ % otool -L /usr/local/lib/libodb{,-sqlite,-qt}.dylib
> /usr/local/lib/libodb.dylib:
> 	/usr/local/lib/libodb-2.3.dylib (compatibility version 0.0.0, current version 0.0.0)
> 	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 60.0.0)
> 	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
> /usr/local/lib/libodb-sqlite.dylib:
> 	/usr/local/lib/libodb-sqlite-2.3.dylib (compatibility version 0.0.0, current version 0.0.0)
> 	/usr/local/lib/libodb-2.3.dylib (compatibility version 0.0.0, current version 0.0.0)
> 	/usr/lib/libsqlite3.dylib (compatibility version 9.0.0, current version 158.0.0)
> 	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 60.0.0)
> 	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
> /usr/local/lib/libodb-qt.dylib:
> 	/usr/local/lib/libodb-qt-2.3.dylib (compatibility version 0.0.0, current version 0.0.0)
> 	/usr/local/lib/libodb-2.3.dylib (compatibility version 0.0.0, current version 0.0.0)
> 	/Users/Max13/Qt/5.3/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.3.0, current version 5.3.2)
> 	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 60.0.0)
> 	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

So it’s confirmed, runtime libs are now linked with libstdc++. Now here is my app’s otool:
> ➜ src % otool -L /Users/Max13/Dev/System/LGC/build/Desktop_Qt_5_3_2_clang_64bit-Debug/apps/LGC/src/LGC.app/Contents/MacOS/LGC 
> /Users/Max13/Dev/System/LGC/build/Desktop_Qt_5_3_2_clang_64bit-Debug/apps/LGC/src/LGC.app/Contents/MacOS/LGC:
> 	/usr/local/lib/libodb-qt-2.3.dylib (compatibility version 0.0.0, current version 0.0.0)
> 	/usr/local/lib/libodb-sqlite-2.3.dylib (compatibility version 0.0.0, current version 0.0.0)
> 	/usr/local/lib/libodb-2.3.dylib (compatibility version 0.0.0, current version 0.0.0)
> 	/Users/Max13/Qt/5.3/clang_64/lib/QtSvg.framework/Versions/5/QtSvg (compatibility version 5.3.0, current version 5.3.2)
> 	/Users/Max13/Qt/5.3/clang_64/lib/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.3.0, current version 5.3.2)
> 	/Users/Max13/Qt/5.3/clang_64/lib/QtGui.framework/Versions/5/QtGui (compatibility version 5.3.0, current version 5.3.2)
> 	/Users/Max13/Qt/5.3/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.3.0, current version 5.3.2)
> 	/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
> 	/System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
> 	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 60.0.0)
> 	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

I’ve done something which would crash, and it doesn’t show “libc++abi uncaught exception” anymore, now my exception are correctly caught by odb::exception !
Many thanks :) !
--  
Cordialement, Adnan RIHAN.
Directeur-Gérant de Eolis-Software, société de services informatiques.  

GPG: 5675-62BA (https://keybase.io/max13/key.asc)
-> Si vous n'utilisez pas GPG mais souhaitez quand même m’envoyer un e-mail chiffré: (https://encrypt.to/0x567562BA).



More information about the odb-users mailing list