Je continue ma quete de cette erreur ... j'ai pu ainsi découvrir des outils, tel que valgrind et electric-fence ...
Avec valgrind, je suis à 205 erreurs ... Ils disent que dépasser 100 ereurs, le détails n'est plus affiché
Je suis passé à electric-fence ...
(...)
printf("ii) %s %s\n",tmp,res);
strcat(tmp,res);
printf("iii)\n" );
(...)
Le programme s'arrete sur le strcat par un SEGFAULT ... le premier printf m'affiche bien tmp=val1 et res=val2
La trace de gdb :
(gdb) run
Starting program: /home/olivier/Project/prototype/analyzer/analyzer syntax.xml
[Thread debugging using libthread_db enabled]
[New Thread -1211848064 (LWP 6130)]
Electric Fence 2.1 Copyright (C) 1987-1998 Bruce Perens.
i)
ii) val1 val2
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1211848064 (LWP 6130)]
0xb7cce4dd in strcat () from /lib/tls/libc.so.6
(gdb) where
#0 0xb7cce4dd in strcat () from /lib/tls/libc.so.6
#1 0x0804b461 in AnalyzerBuilder::translationExpression (this=0xb7b4bfbc, str=0xb7a69ff4 "3%TAG_end%" )
at AnalyzerBuilder.cpp:119
#2 0x0804b5a4 in Expression (this=0xb7a53ff8, reader=0xb7b8af40, analyzerbuilder=0xb7b4bfbc) at AnalyzerBuilder.cpp:62
#3 0x0804bfc3 in AnalyzerBuilder::processNode (this=0xb7b4bfbc, reader=0xb7b8af40) at AnalyzerBuilder.cpp:31
#4 0x0804c1b1 in AnalyzerBuilder::Parse (this=0xb7b4bfbc, namefile=0xbfdfb9c6 "syntax.xml" ) at AnalyzerBuilder.cpp:46
#5 0x0804912e in main (argc=2, argv=0xbfdfa0c4) at analyzer.c:31
(gdb) |
Là, je ne vois pas ce qui bloque ..