Bonjour,

j'ai crée un executable nommé test-toto.exe.

Lors de l'execution de test-toto.exe, j'ai un "segmentation fault".

Je lance donc gdb et j'obtiens comme message d'erreur après le run :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Program received signal SIGSEGV, Segmentation Fault
[Switching to Thread 0x2b6b149442b0 (LWP 12975)]
0x00002b6b131e7c76 in _dl_fini () from /lib64/ld-linux-x86-64.so.2
Lorsque je fais un ldd de mon executable, j'obtiens les informations suivantes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
libCompoolEM-Prg.so.1 => /home/lgalluccio/CompoolTest/LibsTest/libCompoolEM-Prg.so.1 (0x00002b381e61a000)
libfaketechdata.so => /home/lgalluccio/CompoolTest/LibsTest/libfaketechdata.so (0x00002b381e71d000)
libmisc.so.2 => /farequote/Deliverables/Middleware/libmisc.so.2 (0x00002b381e820000)
libemmalloc.so.1 => /farequote/Deliverables/Middleware/libemmalloc.so.1 (0x00002b381e923000)
libdbg.so.0 => /farequote/Deliverables/Middleware/libdbg.so.0 (0x00002b381ea25000)
libBasicTools-Pw.so.1 => /farequote/Deliverables/PricingMdlw/PRW-OUCC100/BasicServices/Lib/libBasicTools-Pw.so.1 (0x00002b381eb2f000)
libContextlessProcesses-Xt.so.1 => /farequote/Deliverables/TechnicalServices/TechnicalProcesses/Lib/libContextlessProcesses-Xt.so.1 (0x00002b381ec38000)
libObjectsTrc-Pw.so.1 => /farequote/Deliverables/PricingMdlw/PRW-OUCC100/ObjectsServices/Lib/libObjectsTrc-Pw.so.1 (0x00002b381ed3a000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00002b381ef62000)
libm.so.6 => /lib64/libm.so.6 (0x00002b381f163000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b381f2b8000)
libc.so.6 => /lib64/libc.so.6 (0x00002b381f3c6000)
libfqparams.so.1 => /farequote/Deliverables/Middleware/libfqparams.so.1 (0x00002b381f5f6000)
libdate.so.1 => /farequote/Deliverables/Middleware/libdate.so.1 (0x00002b381f712000)
libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00002b381f816000)
/lib64/ld-linux-x86-64.so.2 (0x00002b381e4fd000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b381f939000)
liblog.so.3 => /farequote/Deliverables/Middleware/liblog.so.3 (0x00002b381fa50000)
libtpl.so.1 => /farequote/Deliverables/Middleware/libtpl.so.1 (0x00002b381fb5a000)
Puis, via gdb, après avoir fait un run de test-toto.exe, je récupère les infos données par les commandes shared et where.

Shared :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(gdb) shared
Symbols already loaded for /lib64/ld-linux-x86-64.so.2
Symbols already loaded for /home/lgalluccio/CompoolTest/LibsTest/libCompoolEM-Prg.so.1
Symbols already loaded for /home/lgalluccio/CompoolTest/LibsTest/libfaketechdata.so
Symbols already loaded for /farequote/Deliverables/Middleware/libmisc.so.2
Symbols already loaded for /farequote/Deliverables/Middleware/libemmalloc.so.1
Symbols already loaded for /farequote/Deliverables/Middleware/libdbg.so.0
Symbols already loaded for /farequote/Deliverables/PricingMdlw/PRW-OUCC100/BasicServices/Lib/libBasicTools-Pw.so.1
Symbols already loaded for /farequote/Deliverables/TechnicalServices/TechnicalProcesses/Lib/libContextlessProcesses-Xt.so.1
Symbols already loaded for /farequote/Deliverables/PricingMdlw/PRW-OUCC100/ObjectsServices/Lib/libObjectsTrc-Pw.so.1
Symbols already loaded for /usr/lib64/libstdc++.so.6
Symbols already loaded for /lib64/libm.so.6
Symbols already loaded for /lib64/libgcc_s.so.1
Symbols already loaded for /lib64/libc.so.6
Symbols already loaded for /farequote/Deliverables/Middleware/libfqparams.so.1
Symbols already loaded for /farequote/Deliverables/Middleware/libdate.so.1
Symbols already loaded for /usr/lib64/libexpat.so.1
Symbols already loaded for /lib64/libpthread.so.0
Symbols already loaded for /farequote/Deliverables/Middleware/liblog.so.3
Symbols already loaded for /farequote/Deliverables/Middleware/libtpl.so.1
Where:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
(gdb) where
#0  0x00002b6b131e7c76 in _dl_fini () from /lib64/ld-linux-x86-64.so.2
#1  0x00002b6b140d6177 in exit () from /lib64/libc.so.6
#2  0x00002b6b140c115b in __libc_start_main () from /lib64/libc.so.6
#3  0x0000000000400699 in _start ()
La derniere information que je peux donner est que la librairie "libfaketechdata.so" consiste en une dummy librairie que j'ai compilé hors du makefile principal et j'ai rattaché ensuite à la compilation principale.
Pour générer cette librairie, j'ai effectué la commande de compilation suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
gcc faketechdata.c -shared -fPIC -o libfaketechdata.so -D__UNIX64__ -I../Include ......
Pour information générale, je suis sur un Opteron Suse9.1 SLES10

Avec tout ceci, est ce que quelqu'un pourrait me dire d'où vient mon segmentation fault car je ne vois pas trop l'origine du probleme.

Merci
Ludovic