IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

comprendre une erreur EXCEPTION_ACCESS_VIOLATION


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 127
    Points : 49
    Points
    49
    Par défaut comprendre une erreur EXCEPTION_ACCESS_VIOLATION
    Bonjour, dans le cadre d'un projet de biochimie, j'ai été amené à installé un bindings java d'une librairie c++ servant à lire des fichiers SBML ( xml pour la bio ). J'ai déjà eu du mal à installer la librairie, car je me suis rendu compte qu'il me manquait une dll: MSVCP71.DLL. Je l'ai téléchargé et mis dans System32. Depuis la librairie marche ... un peu. En fait j'ai un bug aléatoire, 3 cas de figure se présente lors de la lecture d'un MEME fichier:

    1) soit ça marche (rarement)

    2) soit ça plante en lisant un "id" bien défini dans le xml: Le binding renvoie une string qui représente l'id et là elle est nulle d'où un null pointer exception...

    3) soit ça produit une EXCEPTION_ACCESS_VIOLATION avec le rapport en fin de message. Peut l'être l'erreur provient-elle de l'ajoute manuel de "MSVCP71.DLL" ? Je ne sais pas quoi en penser et je ne comprends pas grand chose au rapport. Quelqu'un peut-il m'éclairer?



    # An unexpected error has been detected by Java Runtime Environment:
    #
    # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x10044b1d, pid=3220, tid=3748
    #
    # Java VM: Java HotSpot(TM) Client VM (10.0-b22 mixed mode, sharing windows-x86)
    # Problematic frame:
    # C [sbmlj.dll+0x44b1d]
    #
    # If you would like to submit a bug report, please visit:
    # http://java.sun.com/webapps/bugreport/crash.jsp
    # The crash happened outside the Java Virtual Machine in native code.
    # See problematic frame for where to report the bug.
    #

    --------------- T H R E A D ---------------

    Current thread (0x00385c00): JavaThread "main" [_thread_in_native, id=3748, stack(0x003a0000,0x003f0000)]

    siginfo: ExceptionCode=0xc0000005, reading address 0x00000000

    Registers:
    EAX=0x00000000, EBX=0x00000000, ECX=0x02e34dc8, EDX=0x02e7fccf
    ESP=0x003efb50, EBP=0x02e73e20, ESI=0x00000000, EDI=0x02e7fcd0
    EIP=0x10044b1d, EFLAGS=0x00010246

    Top of Stack: (sp=0x003efb50)
    0x003efb50: 02e37578 1000823e 00000000 1001dfde
    0x003efb60: 02e37578 02e73e20 00000000 02e37578
    0x003efb70: 003efc00 2699fb78 1001df90 00000000
    0x003efb80: 02e37578 02e73e20 00000000 02e73e20
    0x003efb90: 1001e04b 00000000 02e37578 02e73e20
    0x003efba0: 00000080 00000000 2699fb78 1004339e
    0x003efbb0: 02e37578 00385c00 2699fb78 008e9c91
    0x003efbc0: 00385cf4 003efc08 02e37578 00000000

    Instructions: (pc=0x10044b1d)
    0x10044b0d: 8b 00 5e c2 04 00 85 f6 76 06 4e 8b 40 04 75 fa
    0x10044b1d: 8b 00 5e c2 04 00 cc cc cc cc cc cc cc cc cc cc


    Stack: [0x003a0000,0x003f0000], sp=0x003efb50, free space=318k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    C [sbmlj.dll+0x44b1d]

    Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
    v ~BufferBlob::Interpreter
    v ~BufferBlob::Interpreter
    v ~BufferBlob::Interpreter
    v ~BufferBlob::Interpreter
    v ~BufferBlob::Interpreter
    v ~BufferBlob::StubRoutines (1)

    --------------- P R O C E S S ---------------

    Java Threads: ( => current thread )
    0x02a53000 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=884, stack(0x02d00000,0x02d50000)]
    0x02a48800 JavaThread "CompilerThread0" daemon [_thread_blocked, id=3968, stack(0x02cb0000,0x02d00000)]
    0x02a47400 JavaThread "Attach Listener" daemon [_thread_blocked, id=4040, stack(0x02c60000,0x02cb0000)]
    0x02a46800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=1988, stack(0x02c10000,0x02c60000)]
    0x02a41c00 JavaThread "Finalizer" daemon [_thread_blocked, id=3644, stack(0x02bc0000,0x02c10000)]
    0x02a3d800 JavaThread "Reference Handler" daemon [_thread_blocked, id=3492, stack(0x02b70000,0x02bc0000)]
    =>0x00385c00 JavaThread "main" [_thread_in_native, id=3748, stack(0x003a0000,0x003f0000)]

    Other Threads:
    0x02a3c400 VMThread [stack: 0x02b20000,0x02b70000] [id=4092]
    0x02a6e400 WatcherThread [stack: 0x02d50000,0x02da0000] [id=3964]

    VM state:not at safepoint (normal execution)

    VM Mutex/Monitor currently owned by a thread: None

    Heap
    def new generation total 960K, used 84K [0x228e0000, 0x229e0000, 0x22dc0000)
    eden space 896K, 7% used [0x228e0000, 0x228efcb0, 0x229c0000)
    from space 64K, 32% used [0x229c0000, 0x229c5450, 0x229d0000)
    to space 64K, 0% used [0x229d0000, 0x229d0000, 0x229e0000)
    tenured generation total 4096K, used 159K [0x22dc0000, 0x231c0000, 0x268e0000)
    the space 4096K, 3% used [0x22dc0000, 0x22de7ef0, 0x22de8000, 0x231c0000)
    compacting perm gen total 12288K, used 846K [0x268e0000, 0x274e0000, 0x2a8e0000)
    the space 12288K, 6% used [0x268e0000, 0x269b3af8, 0x269b3c00, 0x274e0000)
    ro space 8192K, 62% used [0x2a8e0000, 0x2ade2a60, 0x2ade2c00, 0x2b0e0000)
    rw space 12288K, 52% used [0x2b0e0000, 0x2b7286e0, 0x2b728800, 0x2bce0000)

    Dynamic libraries:
    0x00400000 - 0x00423000 C:\Program Files\Java\jre1.6.0_06\bin\javaw.exe
    0x7c910000 - 0x7c9c7000 C:\WINDOWS\system32\ntdll.dll
    0x7c800000 - 0x7c905000 C:\WINDOWS\system32\kernel32.dll
    0x77da0000 - 0x77e4c000 C:\WINDOWS\system32\ADVAPI32.dll
    0x77e50000 - 0x77ee2000 C:\WINDOWS\system32\RPCRT4.dll
    0x77fc0000 - 0x77fd1000 C:\WINDOWS\system32\Secur32.dll
    0x7e390000 - 0x7e420000 C:\WINDOWS\system32\USER32.dll
    0x77ef0000 - 0x77f37000 C:\WINDOWS\system32\GDI32.dll
    0x7c340000 - 0x7c396000 C:\Program Files\Java\jre1.6.0_06\bin\msvcr71.dll
    0x6d7c0000 - 0x6da10000 C:\Program Files\Java\jre1.6.0_06\bin\client\jvm.dll
    0x76ae0000 - 0x76b0f000 C:\WINDOWS\system32\WINMM.dll
    0x6d270000 - 0x6d278000 C:\Program Files\Java\jre1.6.0_06\bin\hpi.dll
    0x76ba0000 - 0x76bab000 C:\WINDOWS\system32\PSAPI.DLL
    0x6d770000 - 0x6d77c000 C:\Program Files\Java\jre1.6.0_06\bin\verify.dll
    0x6d310000 - 0x6d32f000 C:\Program Files\Java\jre1.6.0_06\bin\java.dll
    0x6d7b0000 - 0x6d7bf000 C:\Program Files\Java\jre1.6.0_06\bin\zip.dll
    0x10000000 - 0x10133000 C:\WINDOWS\system32\sbmlj.dll
    0x02da0000 - 0x02dc5000 C:\WINDOWS\system32\LIBEXPAT.dll
    0x7c3a0000 - 0x7c41b000 C:\WINDOWS\system32\MSVCP71.dll

    VM Arguments:
    java_command: wparser.SBMLParser
    Launcher Type: SUN_STANDARD

    Environment Variables:
    JAVA_HOME=C:\Program Files\Java\jdk1.6.0_06
    CLASSPATH=C:\Program Files\PhotoDeluxe EE 1.1\AdobeConnectables;C:\lib\tools.jar
    PATH=C:\Program Files\Java\jre1.6.0_06\bin\client;C:\Program Files\Java\jre1.6.0_06\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\apache-ant-1.7.0\bin;C:\eclipse\agent\bin;C:\Program Files\SBML\libSBML-3.1.1-xerces\win32\bin;C:\WINDOWS\system32\Lib\site-packages;
    USERNAME=Benoît
    OS=Windows_NT
    PROCESSOR_IDENTIFIER=x86 Family 6 Model 23 Stepping 6, GenuineIntel



    --------------- S Y S T E M ---------------

    OS: Windows XP Build 2600 Service Pack 2

    CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 7 stepping 6, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3

    Memory: 4k page, physical 2097151k(2097151k free), swap 4194303k(4194303k free)

    vm_info: Java HotSpot(TM) Client VM (10.0-b22) for windows-x86 JRE (1.6.0_06-b02), built on Mar 25 2008 01:22:05 by "java_re" with MS VC++ 7.1

    time: Wed Aug 06 13:35:54 2008
    elapsed time: 0 seconds


    PS: je suis censé rendre le programme dans 1 semaine et demi ...

  2. #2
    Membre confirmé Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Points : 493
    Points
    493
    Par défaut
    As-tu un manuel détaillé de ta lib en C ? Système, JRE supportés ? Par ce que visiblement, la VM à crashé à cause du code natif exécuté de la dll. Ceux qui ont fait la lib pour Java peuvent peut être t'aider à l'utiliser.

    Du coup que fait la lib exactement ? Car si c'est juste du parsing XML avec très peu d'intelligence concernant l'exploitation du format spécifique SBML, autant ne pas embarquer de natif et laisser le code Java lire le XML.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 127
    Points : 49
    Points
    49
    Par défaut
    Voici quelques liens vers la doc de la lib en c++ :
    http://sbml.org/Software/libSBML/docs/cpp-api/

    et la doc du binding java:
    http://sbml.org/Software/libSBML/docs/java-api/

    La lib construit vraiment des structures de données facile à gérer, avec des outils de parsing pratiques qui me sont indispensables (formules mathématiques MathML --> chaîne de de caractères ), des outils de conversion d'une version sbml vers une autre ... du coup je ne peux vraiment pas m'affranchir de cette lib.

    Je me suis inscrit sur le forum de sbml il y a une semaine, mon inscription n'a toujours pas été validée. Je ne peux donc pas y poster.

  4. #4
    Membre confirmé Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Points : 493
    Points
    493
    Par défaut
    Je ne pourrais pas t'aider d'avantage sur ce coup là désolé

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Points : 199
    Points
    199
    Par défaut
    As-tu regardé si d'autres versions du fichier "MSVCP71.DLL" existaient ? C'est un dll qui est souvent cherché, et je sais que j'ai déjà eu des problèmes lors de la récupération de celui-ci.

  6. #6
    Membre confirmé Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Points : 477
    Points
    477
    Par défaut
    ca ne t'aidera pas mais ca m'a tout l'air d'etre une erreur de segmentation

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 127
    Points : 49
    Points
    49
    Par défaut
    JohnNC> j'ai cherché d'autre version de la dll mais je n'en ai pas trouvé, c'est toujours la même qui traine sur les site de téléchargement de dll.

    KindPlayer> C'est peut être ça mais le truc c'est que j'ai pas envie de retaper en plus dans le code source c++ de la lib.

    Du nouveau: quand je n'effectue pas la validation (au sens xml) de mon document, je n'ai plus aucun bugs .... pourtant le plantage se faisait largement après dans le code...

  8. #8
    Membre confirmé Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par Benoit_T Voir le message
    Du nouveau: quand je n'effectue pas la validation (au sens xml) de mon document, je n'ai plus aucun bugs .... pourtant le plantage se faisait largement après dans le code...
    Oui mais ça, c'est la joie et le bonheur du C, écrire du code qui corrompt la mémoire réservée à d'autres zones et potentiellement écraser des variables ...
    Et effectivement, c'est une belle source de core dump. J'avoue ne pas regretter d'être passé très vite à Java pour ce genre de choses .

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 127
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par djsnipe Voir le message
    Oui mais ça, c'est la joie et le bonheur du C, écrire du code qui corrompt la mémoire réservée à d'autres zones et potentiellement écraser des variables ...
    Et effectivement, c'est une belle source de core dump. J'avoue ne pas regretter d'être passé très vite à Java pour ce genre de choses .
    Exactement. Bon du coup je fais un truc qui manque clairement d'esthétisme: je valide avec une autre lib (100% java mais largement moins performante, pas documentée ... ) et je fais le reste avec ma lib qui plante

    En tout cas merci pour tes conseils. J'hésite à mettre résolu ...

Discussions similaires

  1. Comprendre une erreur de dependencyProperty
    Par Masmeta dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 07/10/2013, 16h54
  2. Réponses: 7
    Dernier message: 06/10/2010, 11h09
  3. Une erreur que j'arrive pas a comprendre
    Par olifile dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/05/2007, 13h41
  4. [Free Pascal] Aide pour comprendre une erreur de compilation
    Par SimoBenz dans le forum Free Pascal
    Réponses: 7
    Dernier message: 05/12/2006, 18h43
  5. Ne pas formater une erreur
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 2
    Dernier message: 18/03/2003, 14h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo