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 Delphi Discussion :

Violation d’accès (écriture de l’adresse)


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 37
    Points : 12
    Points
    12
    Par défaut Violation d’accès (écriture de l’adresse)
    Bonjours tout le monde,

    J’espère trouver une solution à mon problème ici. J’ai une application sous Delphi 7. L’application s’exécute sans problème mais lorsque je travaille un certain moment j’ai le message suivant :
    ‘’violation d’accès à 0x77e62483 : écriture de l’adresse 0x008b0ffc ‘. Je ne comprends vraiment pas le problème.
    J’attends votre aide, merci.

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut et bienvenue sur les forums de Developpez.com ,

    Concernant ton souci, heu ... comme ça, personne ne pourra t'aider
    Faudrait voir si ton application ne comporterai pas de fuite mémoire, mais pour ça, il faudrait que tu vérifies que pour chaque create appelé, il y un bien un destroy (ou équivalent) qui "correspond" ...

    Sans savoir l'endroit où ça plante on ne pourra rien faire de plus, j'en ai bien peur.

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 37
    Points : 12
    Points
    12
    Par défaut
    J’ai fait une recherche sur l’erreur avec l’adresse et voila ce que j’ai eu

    Images attachées Images attachées  

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    très étonnant, ce n'est pas une opération d'écriture et ça ne concerne pas l'adresse 0x008b0ffc
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 37
    Points : 12
    Points
    12
    Par défaut
    avec l'adresse 0x008b0ffc voila ce que J’obtiens
    Images attachées Images attachées  

  6. #6
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    non ça donne rien c'est normal,

    en général ce genre d'exception te donne un "MOV [EBX], XXX" où EBX vaut 0x008b0ffc

    or dans ton premier message c'est un PUSH...éventuellement tu pourrais avoir un plantage avec une adresse de pile invalide mais ESP n'est pas égal à 0x008b0ffc...donc c'est bizarre.

    l'adresse de plantage est toujours la même ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 37
    Points : 12
    Points
    12
    Par défaut
    Oui sa plante toujours avec la même adresse, mais j’ai remarqué quelque chose sa ce passe précisément dans la form3, lorsque j’ouvre cette dernier et je clique sois dans la barre des taches ou un autre endroit que cette forme j’ai le plantage de l’application

  8. #8
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    et que donne le débuggeur à ce moment là ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 37
    Points : 12
    Points
    12
    Par défaut
    il point sur la ligne que j'ai montré sur l'image

  10. #10
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    ce genre de problème arrivent souvent lorsqu'on manipule, des listbox et leur items

    est ce ton cas ? si oui, vérifie qu'il n'y a rien d'incohérent

  11. #11
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 37
    Points : 12
    Points
    12
    Par défaut
    merci a tous le monde pour l'attention que vous donné a mon problème
    Citation Envoyé par Coussati Voir le message
    ce genre de problème arrivent souvent lorsqu'on manipule, des listbox et leur items

    est ce ton cas ? si oui, vérifie qu'il n'y a rien d'incohérent
    heuu non j'utilise aucun listbox,des debgrid,des edit et des boutton sais tous

  12. #12
    Membre éprouvé
    Avatar de octal
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 441
    Points : 957
    Points
    957
    Par défaut
    Franchement ce genre de violation peu venir d'une arithmétique de pointeur invalide, de libération (correcte/mauvaise) de mémoire au mauvais moment, d'une gestion maladroite des PChar, ou même des String avec des fonctions manipulant directement leur buffer (Memxxx) ....
    Le plus simple est déjà d'installer sur ton delphi un outil genre MadExcept. Cet outil une fois activé vas te donner bien plus d'information et surtout il te donnera la trace des appels, la plus part du temps j'arrivais à chopper et régler ce genre de pb en moins de 5 min avec madExcept.

    http://madshi.net/madExceptDescription.htm

    il suffit de l'installer (c'est gratuit), d'ouvrir ton projet dans Delphi, aller dans le menu de build et tu trouvera une nouvelle entrée de menu concernant MadExcept, il suffit de cliquer dessus, activer la case à cocher (Enable MadExcept), puis de rebuilder entièrement (SUPER IMPORTANT) ton projet.
    Tu lance après ton projet, tu l'execute, et à la violation tu vas avoir MadExcept qui va surgir, tu fait afficher le Bug Report, et là t'aura une superbe interface à onglet dans laquelle t'as toutes les infos

    Bon courage.
    http://www.pocketmt.com GLCD Font Creator home site.

  13. #13
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 37
    Points : 12
    Points
    12
    Par défaut
    merci les gars pour votre aide,pour le moment j'ai juste supprimer la forme qui provoque ce problème et j'ai crée une nouvelle sans aucun plantage,mais j'ai laissé la version qui plante je veut comprendre pour quoi ce plantage

  14. #14
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Le plus probable serait la libération d'un élement interne comme Item d'une TListView, ou un Node, ... dont tu conserves la référence, et qu'au moment où tu l'utilises, il n'existe plus !

    Pour le Debug CPU, lorsque l'on est dans ntdll, c'est pas l'endroit où ça plante vraiment, c'est carrement le debugger ou l'OS qui se perd lui même !
    Un appel système qui se passe mal !
    Tu es en Vista ou Seven ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  15. #15
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 37
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Le plus probable serait la libération d'un élement interne comme Item d'une TListView, ou un Node, ... dont tu conserves la référence, et qu'au moment où tu l'utilises, il n'existe plus !

    Pour le Debug CPU, lorsque l'on est dans ntdll, c'est pas l'endroit où ça plante vraiment, c'est carrement le debugger ou l'OS qui se perd lui même !
    Un appel système qui se passe mal !
    Tu es en Vista ou Seven ?
    je suis sous seven,mais le plantage arrive aussi sous xp

  16. #16
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 218
    Points : 311
    Points
    311
    Par défaut
    Je ne sais plus quelle erreur ca faisait mais vu que tu parles d'une erreur plus ou moins aléatoire, est-ce que ton pb se pose uniquement avec le compilateur ou même avec un exe autonome. Il m'arrivait régulièrement à une époque d'avoir des problèmes dus à la fonction de recherche de Delphi 7.

  17. #17
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 37
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par macumba Voir le message
    Je ne sais plus quelle erreur ca faisait mais vu que tu parles d'une erreur plus ou moins aléatoire, est-ce que ton pb se pose uniquement avec le compilateur ou même avec un exe autonome. Il m'arrivait régulièrement à une époque d'avoir des problèmes dus à la fonction de recherche de Delphi 7.
    le problème a été détecté en utilisant un exe et je l'ai confirmé avec le compilateur

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par octal Voir le message
    ......
    Le plus simple est déjà d'installer sur ton delphi un outil genre MadExcept. .....
    http://madshi.net/madExceptDescription.htm
    il suffit de l'installer (c'est gratuit), ......
    Bon courage.
    Cet outil a l'air d'être exactement ce qu'il me faut mais j'ai du mal à l'installer.

    Je fais un post sur le forum de madexcept mais comme le logiciel n'a l'air très actif je préfère mettre aussi un post ici.

    Ma config est assez vieille : Windows XP + Delphi 6 en français mais le logiciel madexcept a bien l'air prévu aussi pour ce genre d'antiquité.

    Est ce que quelqu'un peut m'aider à comprendre où j'ai péché ? Merci d'avance pour votre aide,
    et voici le lien vers le forum de madexcept et qui donne un peu plus de détail (sinon je peux fournir aussi ces détails ici) : http://forum.madshi.net/viewtopic.php?f=4&t=28360

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Suite de mon post précédent :
    En fait, l'install avait planté uniquement parce que je n'avais pas coché une case 'installer madexcept' : le concepteur de madexcept a répondu à ma question sur son forum et ça m'a "ouvert les yeux".
    Depuis, je fais mes tests sur madexcept et c'est vraiment un excellent outil.

  20. #20
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    tu ne parcourt pas un tableau dynamique dans ton programme ?
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

Discussions similaires

  1. Violation d’accès concurrentiel incompréhensible.
    Par BasicZX81 dans le forum ADO.NET
    Réponses: 4
    Dernier message: 19/03/2012, 19h08
  2. [DELPHI][PROECEDURES STOCKES] Access violation
    Par All Jinx dans le forum Bases de données
    Réponses: 6
    Dernier message: 14/05/2004, 15h57
  3. Récupere erreur de Violation de kley unique
    Par neness dans le forum Bases de données
    Réponses: 7
    Dernier message: 26/02/2004, 19h26
  4. Réponses: 3
    Dernier message: 22/05/2002, 09h37

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