URL: https://linuxfr.org/forums/programmation-c--2/posts/segfault-dans-la-demo-d-ocilib Title: segfault dans la démo d'ocilib Authors: j_m Date: 2014年03月15日T22:45:01+01:00 License: CC By-SA Tags: Score: 0 Salut, J'essaie d'exécuter une des démo fournie avec ocilib (qui permet d'accéder à une db Oracle). On voit que la connexion se fait bien, mais l'appli fait un segfault dans la méthode oci_cleanup. J'ai mis un stacktrace pour montrer ça. Si je fais un code plus compliqué avec des insertions dans une table, les insertions passent mais ça plante à nouveau dans OCI_Cleanup. Ci-dessous je mets le code de la démo, avec les paramètres de ma connexion. Ensuite le résultat de l'exécution dans gdb avec une stacktrace. J'utilise la db en version 11g qui est founie dans la machine virtuelle de test configurée par oracle. Quelqu'un a une idée de ce que ça pourrait être ? Merci Voici le code: ```C #include "ocilib.h" int main(void) { OCI_Connection *cn; if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT)) return EXIT_FAILURE; cn = OCI_ConnectionCreate("//localhost:1521/orcl", "dbuser", "oracle", OCI_SESSION_DEFAULT); printf("Server major version : %i\n", OCI_GetServerMajorVersion(cn)); printf("Server minor version : %i\n", OCI_GetServerMinorVersion(cn)); printf("Server revision version : %i\n\n", OCI_GetServerRevisionVersion(cn)); printf("Connection version : %i\n\n", OCI_GetVersionConnection(cn)); OCI_Cleanup(); return EXIT_SUCCESS; } ``` Voici la sortie, on voit que les requêtes sont bien traitées: ```sh Server major version : 11 Server minor version : 2 Server revision version : 0 Connection version : 1120 Program received signal SIGSEGV, Segmentation fault. ``` Et enfin les messages que j'ai obtenu en faisant tourner l'exécutable dans gdb: ```sh Reading symbols from /home/oracle/ocilib-3.12.1/demo/conn...(no debugging symbols found)...done. (gdb) run Starting program: /home/oracle/ocilib-3.12.1/demo/conn [Thread debugging using libthread_db enabled] warning: .dynamic section for "/usr/lib/libnuma.so.1" is not at the expected address warning: difference appears to be caused by prelink, adjusting expectations Server major version : 11 Server minor version : 2 Server revision version : 0 Connection version : 1120 Program received signal SIGSEGV, Segmentation fault. 0x01bf3e1e in kpunOps () from /home/oracle/app/oracle/product/11.2.0/dbhome_2/lib/libclntsh.so.11.1 (gdb) bt #0 0x01bf3e1e in kpunOps () from /home/oracle/app/oracle/product/11.2.0/dbhome_2/lib/libclntsh.so.11.1 #1 0x01bf5a4a in kpunUnRegister () from /home/oracle/app/oracle/product/11.2.0/dbhome_2/lib/libclntsh.so.11.1 #2 0x01acd622 in OCISubscriptionUnRegister () from /home/oracle/app/oracle/product/11.2.0/dbhome_2/lib/libclntsh.so.11.1 #3 0x00f85276 in kpuqtac () from /home/oracle/app/oracle/product/11.2.0/dbhome_2/lib/libclntsh.so.11.1 #4 0x00fafced in kputac () from /home/oracle/app/oracle/product/11.2.0/dbhome_2/lib/libclntsh.so.11.1 #5 0x00f941a8 in OCISessionEnd () from /home/oracle/app/oracle/product/11.2.0/dbhome_2/lib/libclntsh.so.11.1 #6 0x00b553c9 in OCI_ConnectionLogOff (con=0xb87398) at connection.c:798 #7 0x00b563b0 in OCI_ConnectionClose (con=0x80813e8) at connection.c:901 #8 0x00b6f077 in OCI_ListForEach (list=0x8081378, proc=0xb56380 ) at list.c:252 #9 0x00b675de in OCI_Cleanup () at library.c:1257 #10 0x08048719 in main () ```

AltStyle によって変換されたページ (->オリジナル) /