begin process at 2012 02 13 13:35:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

System

 > 

Pb de mémoire:recherche de méthodes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb de mémoire:recherche de méthodes

jeudi 2 août 2007 à 17:43:13 | Pb de mémoire:recherche de méthodes

alexandre7g

Bonjour,

Je programme en C++ sous VS2005.
J'ai un pb d'allocation de ma table des méthodes (il me semble):lorsque j'appel un méthode depuis un pointeur vers un objet, le programme se dirige vers une AUTRE méthode!!!
Elle n'ont aucun rapport entre elles (nom,pas d'héritage,...).
Le programme m'a fait cette erreur a 2 endroits différents dans le code.

Problèmes de heap?
Comment débugger?
Puis je voir l'adresse des méthodes qlq part?
vendredi 3 août 2007 à 00:57:23 | Re : Pb de mémoire:recherche de méthodes

julien_boss

Montre nous un bout de code, ca pourrait t'aider :)
vendredi 3 août 2007 à 13:27:01 | Re : Pb de mémoire:recherche de méthodes

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

lol le bug à la c**.

Les méthodes qui posent problèmes sont déclarées virtuelles dans une parente ?

Le principe des vtable est généralement assez simple : chaque instance de l'objet balade un pointeur sur une vtable qui est utilisée par toutes les instances d'une classe. Lors de l'appel d'une méthode, le processeur execute l'adresse qui se trouve à un certains offset dans la vtable pointé par l'objet.

|pointeur sur l'objet   -> |vtable                -> adresse de la fonction à executer.
|offset dans la vtable |offset dans la vtable

Débuguer en langage machine te permettrait de comprendre d'où vient le problème. L'assembleur est un langage très simple, mais c'est vrai que pour celui qui en a jamais fait...



vendredi 3 août 2007 à 14:18:20 | Re : Pb de mémoire:recherche de méthodes

luhtor

Euh rt15 il semble justement que dans son cas, il n'y ait aucun héritage.
Débugger en langage machine ? alors qu'on peu débugger en C ?

A tout hasard Alexande, tente un clean + build.
vendredi 3 août 2007 à 15:38:41 | Re : Pb de mémoire:recherche de méthodes

rt15

Membre Club Administrateur CodeS-SourceS
Je pensais que le "pas d'héritage" était en relation avec le "Elle n'ont aucun rapport entre elles".

S'il n'y a pas du tout d'héritage, il n'y a très certainement pas de vtable dans l'appli.

En langage machine, on ne peut voir le pointeur sur la vtable et la vtable... en C++ non.
vendredi 3 août 2007 à 16:20:29 | Re : Pb de mémoire:recherche de méthodes

luhtor

Bien sur qu'on peut avoir accès a la vtable en C++. Le C est très proche du langage machine. Aucune raison de se faire ù*"'ù(" avec de l'asm ou autre.
vendredi 3 août 2007 à 16:45:16 | Re : Pb de mémoire:recherche de méthodes

rt15

Membre Club Administrateur CodeS-SourceS
On peut voir les vtable en C++ sous VC2005 ?
Je suis passé à côté...


vendredi 3 août 2007 à 19:40:39 | Re : Pb de mémoire:recherche de méthodes

luhtor

En VC2005 ou n'importe quelle ide, comme tu le disais c'est juste un pointeur possédé par chaque object de la classe. Suffit de lire le contenu du pointeur. Mais le débuggeur VC2005 le fait pour nous. Rien n'est impossible à ce débuggeur :)
vendredi 3 août 2007 à 20:57:34 | Re : Pb de mémoire:recherche de méthodes

rt15

Membre Club Administrateur CodeS-SourceS
Ah vi, effectivement, désolé. Ce débugueur est décidement très pratique !
lundi 6 août 2007 à 09:15:46 | Re : Pb de mémoire:recherche de méthodes

alexandre7g

Ces réponses m'aident à comprendre le fonctionnement des vtable mais...

En enlevant la méthode vers laquelle le programme pointait de maniere non désiré, une autre erreur est apparu: "Accès violation reading...0xC0000005"!
Ca peu effectivement arriver à n'importe quel moment dans le débogage, en fait à chaque fois que j'arrive à cette adresse (0xC0000005).
J'ai trouvé plusieurs raison à cette "fuite mémoire" ou "refus d'accès" sur le net mais pour l'instant aucune solution à mon problème!
On trouve notament sur internet cette erreur due aux antivirus, au mode débogue, au multithread...


1 2

Cette discussion est classée dans : pb, programme, recherche, méthodes, mémoire


Répondre à ce message

Sujets en rapport avec ce message

pb de conversion de chaine de caractéres [ par Thanatos ] Bonjour,Je désirerais faire un programme sur les fonctions logiques de base : un utilisateur rentre une fonction logique et le programme lui sort la t Recherche programme lecture Socket [ par DarknessLucifer ] Besoin d'un programme permettant de lire les informations Socket .. je travail sous windows.Si qq avait un programme fonctionnant je lui en serait tre pb mémoire [ par MELISA ] Bonjour à tous,Voici mon pb: lorsque j'exécute mon projet, à un moment donné l'erreur suivante s'affiche: "L'instruction à "0x5f41194f" emploie l'adre Pb de compilation [ par Cyberboy2054 ] Salut J' ai un piti problème de compilation en C++Quand j' ai terminé mon programme (un aplication console)je teste mon programme depuis le compilateu Un ptit pb en C, Debutant 2 . [ par Tkaos ] Voila encore un probleme, apres avoir appris a me servir du "if" j'ai fait ce petit programme :#include #include #include int main(void) { char szname Pb debutant "C" 2 [ par Tkaos ] Voila encore un probleme, apres avoir appris a me servir du "if" j'ai fait ce petit programme :#include #include #include int main(void){char szname[1 PB:[TURBO C++]charger une image (bmp ou jpg) et l'afficher [ par kobee12 ] depuis quelque temps j'essaie de trouver un programme qui me permettrait d'afficher une ou plusieurs images en utilisant GRAPHICS.H avec TURBO C++.Seu RECHERCHE UN PROGRAMMATEUR C++ POUR P'TIT PROGRAMME [ par easyweb ] Salut à tous,Je recherche un programmateur sachant manier le C++ et qui pourrait me réaliser un p'tit prog, je ne donne pas plus d'info pour l'instant erreur "ne peut etre un read" [ par Sade ] Salut a tous le monde.Dans le programme que j'ai develoP, j'utilise le FileMapping pour pouvoir echange des données entre deux programme distinct fonc pb mémoire (suite) [ par moloko2000 ] Non en fait on ne peux pas allouer une fois pour toute puisque ma fonction c est appelée à chaque enregistrement par un autre programme(4D).Donc l'all


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,763 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales