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 ..