Bonjour,
Voici mon problème. J'avais un exécutable compilé sous Linux avec codebloc. J'ai modifié la chaine de compilation pour générer les binaires avec CMAKE.

La compilation et l'exécution est OK. L'application est configuré pour générer un core dump lors d'un crash. J'analyse ce core avec gdb en exécutant la commande :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
gdb monapplication --core=core.1222
Depuis que j'utilise CMAKE pour la génération, je peux analyser ce coredump uniquement sur la machine sur laquelle a été généré le binaire. Si j'essaie sur une autre machine (même OS RedHat 5.6) j'ai l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
BFD: Warnig: /home/.../core.1222 is truncated: expected core file size >= 307032064, found: 307027968
Ensuite "info threads" dans gdb me retourne ?? à la place du nom des fonctions. Comme s'il manquait les symbols.

La commande nm retourne bien la liste des symboles

Dans mon CMakeLists.txt j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY  ../bin )
SET(CMAKE_USE_RELATIVE_PATHS ON)
SET(CMAKE_VERBOSE_MAKEFILE ON)
SET(CMAKE_CXX_COMPILER g++)
SET(CMAKE_BUILD_STRIP FALSE)
 
SET(CMAKE_CXX_FLAGS            "${CMAKE_CXX_FLAGS} -g")
La commande g++ avec CMAKE est sensible identique à celle que j'avais précédemment avec codeblocs sauf l'option -o
avec cmake:
[CODE] -o CMakeFiles/monappilcation.dir/home/.../main.cpp.o
avec codeblocs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
-o obj/Release/.../main.cpp.o
Auriez vous une idée comment retrouver mes symboles avec CMAKE sur un autre machine que celle qui a généré le binaire?

Par avances merci.