Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1669 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  seg fault occasionnel, disparait quand debug pas a pas

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

seg fault occasionnel, disparait quand debug pas a pas

n°368571
theorie du​ chaos
morte et enterrée
Posté le 22-04-2003 à 16:52:57  profilanswer
 

.equ Delem,  8  # acces a la valeur a inserer
      .equ Dsuiv,  8  # acces a l�adresse de l�element suivant
      .equ Taille,  8  # taille d�un element de liste  
            # (valeur et adresse de l�element suivant )
 .data
tete�:  .long 0     # tete de la liste
valeur: .long 0    # valeur de l�element a inserer
 
 .text
 .global inserer
 
 
inserer:
 pushl %ebp
 movl %esp, %ebp
 pushal      
 movl Delem(%ebp),  valeur  
 
la derniere ligne pose probleme
 
Error: too many memory references for `mov'
je voudrais mettre une valeur dans valeur
 
une idee de pourquoi ca veut po? :'(


Message édité par theorie du chaos le 23-04-2003 à 08:26:39
mood
Publicité
Posté le 22-04-2003 à 16:52:57  profilanswer
 

n°368575
theorie du​ chaos
morte et enterrée
Posté le 22-04-2003 à 16:56:14  profilanswer
 

movl Dsuiv(%ebx), tete  
 
ca aussi ca ne veut pas...
ca ne doit pas tolerer le mode d adressage :/

n°368712
theorie du​ chaos
morte et enterrée
Posté le 22-04-2003 à 18:30:26  profilanswer
 

eupe :/

n°368801
youdontcar​e
Posté le 22-04-2003 à 20:00:04  profilanswer
 

en deux temps : mettre la valeur dans un registre, puis le contenu du registre dans l'adresse.

n°368804
chrisbk
-
Posté le 22-04-2003 à 20:03:36  profilanswer
 

Theorie du chaos a écrit :

movl Dsuiv(%ebx), tete  
 
ca aussi ca ne veut pas...
ca ne doit pas tolerer le mode d adressage :/


 
yep, tu ne peux pas adresser a partir d'une variable, seulement d'un registre. Donc comme youdontcare l'a dit, tu copie la valeur de dsuiv dans un reg et tu adresse a partir de ce reg

n°368811
theorie du​ chaos
morte et enterrée
Posté le 22-04-2003 à 20:08:35  profilanswer
 

c pas pour l optimisation ca :/ :d

n°368813
theorie du​ chaos
morte et enterrée
Posté le 22-04-2003 à 20:08:48  profilanswer
 

merci :)

n°368823
chrisbk
-
Posté le 22-04-2003 à 20:17:00  profilanswer
 

Theorie du chaos a écrit :

c pas pour l optimisation ca :/ :d


 
ben t'as pas le choix, le format des instructions x86 interdit l'encodage de truc genre  
mov [ebp[eax]],20
 
alors bon [:spamafote]

n°368891
theorie du​ chaos
morte et enterrée
Posté le 22-04-2003 à 21:39:54  profilanswer
 

il se passe un truc bizarre quand je debug
 
au 1er lancement j ai un seg fault si je veux tout tester en bloc
 
et si je fais du pas a pas, ca passe tout seul...
 
ca peut etre du a quoi?

n°369116
theorie du​ chaos
morte et enterrée
Posté le 23-04-2003 à 08:27:21  profilanswer
 

up

mood
Publicité
Posté le 23-04-2003 à 08:27:21  profilanswer
 

n°369122
theorie du​ chaos
morte et enterrée
Posté le 23-04-2003 à 08:42:09  profilanswer
 

a part ca ca trie :bounce:

n°369140
theorie du​ chaos
morte et enterrée
Posté le 23-04-2003 à 09:00:10  profilanswer
 

Veuillez saisir votre liste d'entiers et la terminer par -1
5
 
Program received signal SIGSEGV, Segmentation fault.
0x080485cb in inserer_debut ()
 
******************************************************************
 
Veuillez saisir votre liste d'entiers et la terminer par -1
5
 
Breakpoint 1, 0x080485cb in inserer_debut ()
(gdb) cont
Continuing.
 
 
je comprends pas

n°369145
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 23-04-2003 à 09:06:57  profilanswer
 

Theorie du chaos a écrit :

je comprends pas
 


Nous non plus si tu ne postes pas au moins le source de inserer_debut()


---------------
J'ai un string dans l'array (Paris Hilton)
n°369149
theorie du​ chaos
morte et enterrée
Posté le 23-04-2003 à 09:11:36  profilanswer
 

     .equ Delem,  8  
      .equ Dsuiv,  4  
      .equ Taille,  8  
 
tete: .long 0   # tete de la liste
 
 .text
 .global inserer
 
inserer:
 pushl %ebp
 movl %esp,  %ebp
 pushal    
 movl Delem(%ebp), %edi    # edi = integer
     
creer_element:
 pushl $Taille
       call malloc                  # resultat dans eax  
      addl $4,  %esp  
        movl %edi,  (%eax)  
 
rechercher_place:
 movl tete,  %ecx #ecx = 0
 movl $tete,  %ebx  
 cmpl $0,  %ecx  
 je inserer_debut  
 
inserer_debut:
 movl %eax, (%ebx)  
 movl %ecx, Dsuiv(%eax)
 
inserer est appele par un programme en C avec un integer en parametre


---------------
Les accents sont en option... j'ai un clavier qwertz.
n°369152
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 23-04-2003 à 09:21:42  profilanswer
 

Theorie du chaos a écrit :

inserer_debut:
 movl %eax, (%ebx)  


As tu vérifié ce que contient ebx ? Moi ce que je vois, c'est que tu lis le contenu de ebx, mais que tu ne l'initialises nulle part. Il est donc fort possible que tu lises une zone de mémoire interdite => Segfault.


---------------
J'ai un string dans l'array (Paris Hilton)
n°369154
theorie du​ chaos
morte et enterrée
Posté le 23-04-2003 à 09:23:48  profilanswer
 

dans rechercher_place
je fais movl $tete, %ebx


---------------
Les accents sont en option... j'ai un clavier qwertz.
n°369167
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 23-04-2003 à 09:31:25  profilanswer
 

Theorie du chaos a écrit :

dans rechercher_place
je fais movl $tete, %ebx


ben normalement, ça veut dire que tu transfères la valeur de ebx dans tete, à moins que la syntaxe AT&T (que je connais juste de nom) n'inverse les opérandes :??:
sinon, essaies ceci :
 
inserer_debut:
movl %eax,(%ebx)
movl %edx,8
movl %ecx,(%eax+%edx)
 
sous réserve que la syntaxe soit correcte  :sweat:


---------------
J'ai un string dans l'array (Paris Hilton)
n°369171
chrisbk
-
Posté le 23-04-2003 à 09:34:02  profilanswer
 

Harkonnen a écrit :


ben normalement, ça veut dire que tu transfères la valeur de ebx dans tete, à moins que la syntaxe AT&T (que je connais juste de nom) n'inverse les opérandes :??:


 
 
vi elle inverse, sinon ce genre de truc  
addl $4,  %esp  
ne passerait pas trop :D


Message édité par chrisbk le 23-04-2003 à 09:34:55
n°369173
theorie du​ chaos
morte et enterrée
Posté le 23-04-2003 à 09:39:48  profilanswer
 

NB: ce programme doit uniquement etre utilise avec debugeur et un point d arret a inserer_debut... :ange:
 
je vais mettre ca dans le compte rendu :d
 


---------------
Les accents sont en option... j'ai un clavier qwertz.
n°369176
theorie du​ chaos
morte et enterrée
Posté le 23-04-2003 à 09:46:11  profilanswer
 

c est bien la premiere ligne de inserer_debut qui merde
 
je crois que un
movl %eax, tete  
marche pas...
 
je v tester


---------------
Les accents sont en option... j'ai un clavier qwertz.
n°369177
theorie du​ chaos
morte et enterrée
Posté le 23-04-2003 à 09:47:38  profilanswer
 

ca passe a la compilation et a l assemblage, mais ca seg fault aussi...
 
le probleme est il du a la declaration de tete?


---------------
Les accents sont en option... j'ai un clavier qwertz.
n°369178
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 23-04-2003 à 09:52:11  profilanswer
 

Theorie du chaos a écrit :

ca passe a la compilation et a l assemblage, mais ca seg fault aussi...
 
le probleme est il du a la declaration de tete?


et si tu le mets dans une section .data ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°369180
theorie du​ chaos
morte et enterrée
Posté le 23-04-2003 à 09:54:22  profilanswer
 

merci merci merci merci :) :) :)
c etait ca


---------------
Les accents sont en option... j'ai un clavier qwertz.
n°369183
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 23-04-2003 à 09:55:48  profilanswer
 

:sol:


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  seg fault occasionnel, disparait quand debug pas a pas

 

Sujets relatifs
Erreur d'arrondi différentes en mode Debug ou Release[C] seg fault : please help [file avec des listes]
[C++] Debug assertion failed, quesako?Tomcat & Struts 1.1 ... et les millions de ligne de debug !!
segmentation faultéditeur qui debug pas à pas à la visual C++
[easy debug] MySQL et INSERT INTOIntelliJ Idea 3.0 - Debug de JSP
[VISUAL C++]Difference entre Release/Debug 
Plus de sujets relatifs à : seg fault occasionnel, disparait quand debug pas a pas


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR