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 :
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 Program received signal SIGSEGV, Segmentation Fault [Switching to Thread 0x2b6b149442b0 (LWP 12975)] 0x00002b6b131e7c76 in _dl_fini () from /lib64/ld-linux-x86-64.so.2
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.
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)
Shared :
Where:
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
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.
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 ()
Pour générer cette librairie, j'ai effectué la commande de compilation suivante :
Pour information générale, je suis sur un Opteron Suse9.1 SLES10
Code : Sélectionner tout - Visualiser dans une fenêtre à part gcc faketechdata.c -shared -fPIC -o libfaketechdata.so -D__UNIX64__ -I../Include ......
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
Partager