Vérificateur statique - C++ - Programmation
Marsh Posté le 20-06-2004 à 12:53:45
Taz a écrit : moi j'arrive même pas à le compiler alors ... |
t'as des messages d'erreur intéressants ou juste des trucs pas définis ?
ça vient de http://eclipsecolorer.sourceforge. [...] filer.html .
Marsh Posté le 20-06-2004 à 13:06:16
g++ -Wall ProfilerDLL.cpp 2>&1 | head
ProfilerDLL.cpp:150: error: `TCriticalSection' was not declared in this scope
ProfilerDLL.cpp:150: error: template argument 1 is invalid
ProfilerDLL.cpp:150: error: le C++ ISO interdit la déclaration de « TCSLocker
» sans type
ProfilerDLL.cpp:216: error: 'TIdToMethodMap' is used as a type, but is not
defined as a type.
ProfilerDLL.cpp:242: error: `TIdToMethodMap' was not declared in this scope
ProfilerDLL.cpp:242: error: use of class template `template<class _Key, class
_Tp, class _Compare, class _Alloc> class std::map' as expression
ProfilerDLL.cpp:242: error: `TMethodIdToClassMap' was not declared in this
etc -> 234 lignes de messages d'erreurs
Marsh Posté le 20-06-2004 à 13:09:40
et avec -DLINUX et un -I$JAVA_HOME/include ?
Marsh Posté le 20-06-2004 à 13:17:01
bon au final j'ai rien d'autres que des Warnings sur des paramètres inutilisés
Marsh Posté le 20-06-2004 à 13:20:12
et des trucs genre pclint en gratos, t'as pas en stock ? le code est vraiment imbitable !
Marsh Posté le 20-06-2004 à 13:22:45
pour c++ non, je connais rien.
t'arrives à rien avec gdb pour avoir une trace plus complète ?
Marsh Posté le 20-06-2004 à 14:08:28
Pour C++, y'a pas de vérificateur statique (gratuit). J'avais déjà fait la recherche.
Sinon, ligne 1050, où est initialisé env, il y a le #defined name JNI_VERSION_1_2.
Y'aurait-il une librairie mauvaise avec laquelle tu aurais linké ?
Marsh Posté le 20-06-2004 à 18:21:12
Taz > c'est le bordel, j'ai pas essayé, y'a 2 JVM et 2 piles d'appels natifs en jeu, je suis pas hyper motivé pour me pointer avec ma bite et mon gdb là-dedans.
verdoux > non, j'ai que des trucs officiels
el muchacho > ce truc n'a jamais fonctionné sous mac os x, donc je sais pas, mais il devrait y avoir au moins un avertissement quelquepart.
Marsh Posté le 20-06-2004 à 18:38:48
Pourquoi y a 2 JVM, t'es sûr que t'as pas 2 JVM 1.4 installées (ou des vieilles lib qui traînent)
Marsh Posté le 20-06-2004 à 19:06:40
non, je parle de 2 instances, y'a celle du programme en cours de profiling et celle d'eclipse avec le profiler. Voir ce qu'il se passe dans ce bordel quand on connait pas les protocoles (JNI et JVMPI) que le bordel est en C++ et qu'on a pas super envie de passer des heures dessus, c'est pas gagné.
Marsh Posté le 20-06-2004 à 04:05:34
Voilou mon pb, j'ai ce fichier http://www.nraynaud.org/kilombo/ProfilerDLL.cpp à débugger. C'est l'interface entre la JVM et le profiler qui va au bout. Quand je l'utilise, la JVM explose, mais à la ligne 1135 de ce fichier.
une vue partielle de la chose :
Exception: EXC_BAD_ACCESS (0x0001)
Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x0000002c
Thread 0:
0 libSystem.B.dylib 0x900074c8 mach_msg_trap + 0x8
1 libSystem.B.dylib 0x90007018 mach_msg + 0x38
2 com.apple.CoreFoundation 0x90191790 __CFRunLoopRun + 0x350
3 com.apple.CoreFoundation 0x90195f1c CFRunLoopRunSpecific + 0x148
4 java 0x000060f4 0x1000 + 0x50f4
5 java 0x00003c88 0x1000 + 0x2c88
6 java 0x00003afc 0x1000 + 0x2afc
Thread 1 Crashed:
0 libclient.dylib 0x8155f960 jio_vsnprintf + 0xf600
1 libclient.dylib 0x8155f8fc jio_vsnprintf + 0xf59c
2 libProfilerDLL.jnilib 0x02009dfc notifyEvent(JVMPI_Event*) + 0x51c (ProfilerDLL.cpp:1135)
3 libclient.dylib 0x815115a8 JVM_UnloadLibrary + 0x90558
4 libclient.dylib 0x813a5990 JVM_Timeout + 0x1180
5 libclient.dylib 0x813d4e88 JVM_FindClassFromClass + 0x1868
6 libclient.dylib 0x813e0dfc JVM_DefineClass + 0x29c
7 libjava.jnilib 0x80f328e4 Java_java_lang_ClassLoader_defineClass0 + 0x174
Comme c'est imbitable, j'aimerais déjà tenter de trouver les trucs les plus visible en le passant dans une moulinette qui fait des vérifications un peu sémantique.
Et c'est à ce moment là que google se casse aux Bahamas et me renvoie que des outils payants. Et je suis chômeur endetté.
Si quelqu'un connaissait des outils gratuits d'analyse statique de la chose, il m'aiderait peut-être.
bien entendu, g++ -Wall ne donne rien (enfin, j'ai corrigé un bug minime).
---------------
trainoo.com, c'est fini