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

Java Discussion :

Exception access violation


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 7
    Par défaut Exception access violation
    bonjour,
    je viens de m'inscrire sur le site et voudrais poser une question sur la programmation. le probleme est que je n'ai pas su trouver le forum adequate.
    sinon ma question de programmation concerne une synchronisation des bases de donnees en deux pcs (par exemple un a nancy et l'autre a dijon). j'utilise

    l'environnement windows xp sp2, mysql, mon code est principalement en java (jdk1.6.0), j'utilise des servlets deployer par apache tomcat 5.5.7, et une dll

    ecrite en C++. mon probleme est que je retrouve a intervalle irreguliere l'erreur suivante:
    ----------------------------------->
    #
    # An unexpected error has been detected by HotSpot Virtual Machine:
    #
    # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c94426d, pid=240, tid=2124
    #
    # Java VM: Java HotSpot(TM) Client VM (1.5.0_11-b03 mixed mode)
    # Problematic frame:
    # C [ntdll.dll+0x3426d]
    #

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

    Current thread (0x00355f28): JavaThread "main" [_thread_in_native, id=2124]

    siginfo: ExceptionCode=0xc0000005, reading address 0x00000000

    Registers:
    EAX=0x00000000, EBX=0x000003be, ECX=0x0ae421c8, EDX=0x00000000
    ESP=0x0006e994, EBP=0x0006ebb4, ESI=0x0ae403c0, EDI=0x0ae403d0
    EIP=0x7c94426d, EFLAGS=0x00010246

    Top of Stack: (sp=0x0006e994)
    0x0006e994: 00000000 00000006 00000000 cccccccc
    0x0006e9a4: 00000000 00000000 00000000 cccccccc
    0x0006e9b4: cccccccc cccccccc cccccccc cccccccc
    0x0006e9c4: cccccccc cccccccc cccccccc cccccccc
    0x0006e9d4: cccccccc cccccccc cccccccc cccccccc
    0x0006e9e4: cccccccc cccccccc cccccccc cccccccc
    0x0006e9f4: cccccccc cccccccc cccccccc cccccccc
    0x0006ea04: cccccccc cccccccc cccccccc cccccccc

    Instructions: (pc=0x7c94426d)
    0x7c94425d: 11 89 95 64 ff ff ff 8b 40 0c 89 85 5c ff ff ff
    0x7c94426d: 8b 00 3b 42 04 0f 85 13 01 00 00 3b c1 0f 85 0b


    Stack: [0x00030000,0x00070000), sp=0x0006e994, free space=250k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    C [ntdll.dll+0x3426d]
    C [Synchro.dll+0x31ed5]
    C [Synchro.dll+0x31f8e]
    C [Synchro.dll+0x25041]
    C [Synchro.dll+0x1fcfa]
    C [Synchro.dll+0x1d3ba]
    C [Synchro.dll+0x261d0]
    j

    Synchro.ModifValeursModeleDoc(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;L

    java/lang/String;Ljava/lang/StringV+0
    j Synchro.main([Ljava/lang/StringV+1241
    v ~StubRoutines::call_stub
    V [jvm.dll+0x871a8]
    V [jvm.dll+0xdf462]
    V [jvm.dll+0x87079]
    V [jvm.dll+0x8e0d5]
    C [javaw.exe+0x14c5]
    C [javaw.exe+0x3151]
    C [kernel32.dll+0x16fd7]

    Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
    j

    Synchro.ModifValeursModeleDoc(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;L

    java/lang/String;Ljava/lang/StringV+0
    j Synchro.main([Ljava/lang/StringV+1241
    v ~StubRoutines::call_stub

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

    Java Threads: ( => current thread )
    0x00a2eb48 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=1504]
    0x00a2d7e8 JavaThread "CompilerThread0" daemon [_thread_blocked, id=3592]
    0x00a2cba0 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2676]
    0x00a23928 JavaThread "Finalizer" daemon [_thread_blocked, id=3100]
    0x00a224b8 JavaThread "Reference Handler" daemon [_thread_blocked, id=2760]
    =>0x00355f28 JavaThread "main" [_thread_in_native, id=2124]

    Other Threads:
    0x00a1e278 VMThread [id=180]
    0x00a2fda0 WatcherThread [id=2280]

    VM state:not at safepoint (normal execution)

    VM Mutex/Monitor currently owned by a thread: None

    Heap
    def new generation total 576K, used 14K [0x02a70000, 0x02b10000, 0x02f50000)
    eden space 512K, 2% used [0x02a70000, 0x02a72e80, 0x02af0000)
    from space 64K, 4% used [0x02af0000, 0x02af0b08, 0x02b00000)
    to space 64K, 0% used [0x02b00000, 0x02b00000, 0x02b10000)
    tenured generation total 1408K, used 1381K [0x02f50000, 0x030b0000, 0x06a70000)
    the space 1408K, 98% used [0x02f50000, 0x030a9618, 0x030a9800, 0x030b0000)
    compacting perm gen total 8192K, used 3411K [0x06a70000, 0x07270000, 0x0aa70000)
    the space 8192K, 41% used [0x06a70000, 0x06dc4e08, 0x06dc5000, 0x07270000)
    No shared spaces configured.

    Dynamic libraries:
    0x00400000 - 0x0040d000 C:\Program Files\Docuged\Java\jre1.5.0_11\bin\javaw.exe
    0x7c910000 - 0x7c9c7000 C:\WINDOWS\system32\ntdll.dll
    0x7c800000 - 0x7c904000 C:\WINDOWS\system32\kernel32.dll
    0x77da0000 - 0x77e4c000 C:\WINDOWS\system32\ADVAPI32.dll
    0x77e50000 - 0x77ee1000 C:\WINDOWS\system32\RPCRT4.dll
    0x77d10000 - 0x77da0000 C:\WINDOWS\system32\USER32.dll
    0x77ef0000 - 0x77f37000 C:\WINDOWS\system32\GDI32.dll
    0x77be0000 - 0x77c38000 C:\WINDOWS\system32\MSVCRT.dll
    0x76320000 - 0x7633d000 C:\WINDOWS\system32\IMM32.DLL
    0x6d640000 - 0x6d7dd000 C:\Program Files\Docuged\Java\jre1.5.0_11\bin\client\jvm.dll
    0x76ae0000 - 0x76b0f000 C:\WINDOWS\system32\WINMM.dll
    0x6d290000 - 0x6d298000 C:\Program Files\Docuged\Java\jre1.5.0_11\bin\hpi.dll
    0x76ba0000 - 0x76bab000 C:\WINDOWS\system32\PSAPI.DLL
    0x6d610000 - 0x6d61c000 C:\Program Files\Docuged\Java\jre1.5.0_11\bin\verify.dll
    0x6d310000 - 0x6d32d000 C:\Program Files\Docuged\Java\jre1.5.0_11\bin\java.dll
    0x6d630000 - 0x6d63f000 C:\Program Files\Docuged\Java\jre1.5.0_11\bin\zip.dll
    0x10000000 - 0x10064000 C:\Documents and Settings\ACER\workspace\SynchroGed\Synchro.dll
    0x719f0000 - 0x71a07000 C:\WINDOWS\system32\WS2_32.dll
    0x719e0000 - 0x719e8000 C:\WINDOWS\system32\WS2HELP.dll
    0x6d4d0000 - 0x6d4e3000 C:\Program Files\Docuged\Java\jre1.5.0_11\bin\net.dll
    0x71990000 - 0x719d0000 C:\WINDOWS\System32\mswsock.dll
    0x76ed0000 - 0x76ef7000 C:\WINDOWS\system32\DNSAPI.dll
    0x76f60000 - 0x76f68000 C:\WINDOWS\System32\winrnr.dll
    0x76f10000 - 0x76f3d000 C:\WINDOWS\system32\WLDAP32.dll
    0x76f70000 - 0x76f76000 C:\WINDOWS\system32\rasadhlp.dll
    0x62e40000 - 0x62e99000 C:\WINDOWS\system32\hnetcfg.dll
    0x719d0000 - 0x719d8000 C:\WINDOWS\System32\wshtcpip.dll

    VM Arguments:
    java_command: Synchro
    Launcher Type: SUN_STANDARD

    Environment Variables:
    PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Samsung\Samsung PC Studio 3\
    USERNAME=ACER
    OS=Windows_NT
    PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 9, GenuineIntel



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

    OS: Windows XP Build 2600 Service Pack 2

    CPU:total 1 (cores per cpu 1, threads per core 1) family 15 model 2 stepping 9, cmov, cx8, fxsr, mmx, sse, sse2

    Memory: 4k page, physical 2096624k(1116704k free), swap 2717844k(1927080k free)

    vm_info: Java HotSpot(TM) Client VM (1.5.0_11-b03) for windows-x86, built on Dec 15 2006 01:16:12 by "java_re" with MS VC++ 6.0

    ----------------------------------->
    donc en resume je lance mon exe (creer avec java launcher) qui execute donc mon programme principal java. dans ce programme, je fais appel a une methode

    native renvoyant a ma dll. cette dll verifie la connection avec le pc cible et execute par POST ou GET la (les) servlet(s) du pc cible pour mettre a jour et

    ou recuperer les donnees de la base cible. ensuite je recupere la reponse et reviens dans mon programme principal en java.

    en mode debuggage j'execute mon test via eclipse 3.2 et genere ma dll via visual c++ 2005 express.
    durant l'execution de mon test le programme fonctionne, c'est a dire que je recois bien des code retour a 1 (comme quoi le POST ou GET ont bien fonctionné)

    puis soudain explosion affichant l'erreur, edité plus haut. en verifiant les donnees tout est ok. et lorsque je relance le test, ca remarche comme ci rien ne

    s'etait passé en continuant a mettre a jour la suite des donnees et hop replantage. je relance encore une fois , ca marche et hop replantage et ensuite de

    suite. donc j'espere que quelqu'un pourra m'eclaircir sur ce probleme assez embarrassant.

    merci beaucoup de prendre attention a ce probleme.

    je reste a disposition pour toutes informations complementaires.

    davish.

  2. #2
    Membre expérimenté Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Par défaut
    Je ne sais pas si ça va t'aider, mais apparemment l'erreur se situe dans ta dll en C++( bienvenue au royaume du pointeur fou ). En effet, comme le rapporte le log :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    reading address 0x00000000
    Tu essayes de lire un block mémoire vide -> d'où l' erreur

    Ceci se produit quand ta dll est appellée par la méthode java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Synchro.ModifValeursModeleDoc(Ljava/lang/String...)
    Vérifie, peut-être fais-tu appel à une String non allouée ( =null), dump tous tes arguments avant chaque appel.
    Et bon courage !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 7
    Par défaut
    la j'ai eu :
    reading address 0x00000004
    en faisant appel a :
    Synchro.ModifValeursModeleDoc(Ljava/lang/String...
    qu'en penses tu?

    je vais voir en detail ta suggestion et te tiens au courant.
    merci encore.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 7
    Par défaut
    re salut,
    apres analyse je constate que l'exception access violation se fait de maniere aleatoire. parfois au lieu d'obtenir ce message :
    reading address 0x00000004
    j'obtiens plutot:
    writing address 0x0ae61f55
    toujours lier a une methode native.
    je n'arrive pas a comprendre ou pourrez se situer le probleme.
    ta suggestion est bonne me permettant de me mieux comprendre le log que je t'avais edité auparavant. mais au final je me rends compte que le probleme n'est jamais le meme.

  5. #5
    Membre expérimenté Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Par défaut
    Ouais, les bugs aléatoires sont les plus pénibles à résoudre.
    malheureusement, dans ton cas, tout ce que je peux dire c'est que la dll essaye de lire ou d'écrire dans une zone mémoire vérolée.

    Ce n'est surement pas la méthode dumpée qui crée l'erreur mais plus vraisemblablement qui 'lève' l'erreur.
    C'est-à-dire que la zone mémoire a été précédemment dézinguée et ta méthode essaye d'accéder à des objets stockés à cet endroit et donc désormais invalides.

    Mon conseil : met des logs un peu partout pour tracer le comportement de l'appli et ainsi voir après quelle méthode la zone mémoire est abimée

  6. #6
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Bonjour,

    bon je ne pense pas que ça resolve le pb mais autant essayer ....

    tu dis que tu utilise le jdk 1.6. Par contre dans le rapport de crach on voit que le jre utilisé est 1.5_11. Donc voilà. Peut être vaudrait il mieux exécuter avec le bon jre ...

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 7
    Par défaut
    oups erreur d'information j'utilise reellement jdk1.5.0_11 mais j'ai aussi installé jdk1.6. je vais donc desinstaller le 1.6 et reinstallé le 1.5.0_11. je vous contacterai demain. merci de votre interet.tres bonne soiree.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VxiR2] Exception Access Violation lors de la sauvegarde d'un rapport
    Par carden752 dans le forum Deski
    Réponses: 2
    Dernier message: 05/08/2011, 12h53
  2. probleme fortran 90 exception:access violation
    Par rijks dans le forum Fortran
    Réponses: 2
    Dernier message: 25/10/2010, 15h14
  3. First-chance exception + Access violation
    Par ben_popcorn dans le forum C++/CLI
    Réponses: 0
    Dernier message: 08/10/2010, 13h58
  4. Exception Access violation
    Par khalifa_2111 dans le forum Général Java
    Réponses: 0
    Dernier message: 13/07/2009, 12h24
  5. Exception : access violation
    Par marie_p dans le forum Fortran
    Réponses: 6
    Dernier message: 11/03/2009, 16h30

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