Vérificateur statique

Vérificateur statique - C++ - Programmation

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
Reply

Marsh Posté le 20-06-2004 à 04:05:34   

Reply

Marsh Posté le 20-06-2004 à 12:25:17    

moi j'arrive même pas à le compiler alors ...

Reply

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 .


---------------
trainoo.com, c'est fini
Reply

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

Reply

Marsh Posté le 20-06-2004 à 13:09:40    

et avec -DLINUX et un -I$JAVA_HOME/include ?


---------------
trainoo.com, c'est fini
Reply

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

Reply

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 !


---------------
trainoo.com, c'est fini
Reply

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 ?

Reply

Marsh Posté le 20-06-2004 à 13:43:30    

T'aurais pas installé une mise à jour de la JVM Apple ?

Reply

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é ?


Message édité par el muchacho le 20-06-2004 à 14:23:23
Reply

Marsh Posté le 20-06-2004 à 14:08:28   

Reply

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.


---------------
trainoo.com, c'est fini
Reply

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)

Reply

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


---------------
trainoo.com, c'est fini
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed