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

C Discussion :

Function Call corruption


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 39
    Par défaut Function Call corruption
    Bonjour à tous.

    J'ai un défaut de corruption de stack...
    Grace au débugger, j'ai pu isoler le moment ou la corruption se produit. Mais c'est très étrange...

    Admettons je suis sur une fonction de niveau 4. Dans celle-ci j'entre dans une sous fonction (donc lvl 5), au seins de laquelle j'entre dans une autre (lvl6)...
    Jusque là pas de problème.
    La corruption se produit au moment ou le code passe dans "}" de fermeture de la fonction lvl6, entrainant une perte de l’adresse du niveau 4...

    Avez-vous déjà rencontrer le problème?
    Avez-vous une idée, des axes de recherches etc pour m'aider à avancé?

    Merci d'avance pour votre aide...
    Iko


    EDIT: Apres avoir utilisé le "disassemble", je m'apercoit que c'est le "pop ebd" qui génère le défaut (situé juste avant le "ret")

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 119
    Par défaut
    Il suffit que tu « débordes » d'une variable locale (et que tu écrives n'importe où dans la pile) pour que ça arrive.

    Sans ton code, ça va être compliqué de t'aider.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 39
    Par défaut
    Bonjour
    Merci de ta réponse.
    Après relecture, il s'agissait effectivement d'un débordement d'écriture...
    Je travaille actuellement avec un version VC++ 6.0... et j'intègre le soft de mes ptits copains...

    Le problème venait d'un tableau définit à [4] dans lequel on met (via une boucle) 5 éléments...

    Cependant la conséquence sur la stack est étrange...C'est le niveau lvl6 qui est touché au lieu du direct lvl5...

    Mon collègue me dédommagera en Ptit Filou

    Encore merci pour l'aide

    @++
    Iko

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/02/2012, 13h04
  2. problème avec function call
    Par eleve_ingenieur_1987 dans le forum Simulink
    Réponses: 0
    Dernier message: 28/05/2011, 10h32
  3. function call generator log
    Par jefff35 dans le forum Simulink
    Réponses: 0
    Dernier message: 23/10/2009, 14h38
  4. "Pure virtual function called" et destructeur virtuel
    Par Seb des Monts dans le forum C++
    Réponses: 9
    Dernier message: 10/09/2009, 16h54
  5. Réponses: 2
    Dernier message: 14/06/2007, 10h05

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