Bonjour,
Comment initialiser le champ c.mem ? En particulier à quoi devons-nous initialiser c.mem.memory ?
Bonjour,
Comment initialiser le champ c.mem ? En particulier à quoi devons-nous initialiser c.mem.memory ?
A vous de voir...
(du point de vue de la Game Boy ça ne devrait pas avoir d'impact ;
du point de vue d'une programmeuse C : vous devriez être capable de faire ce choix par vous-même. ;-)
)
Merci pour la réponse.
Cependant nous avons toujours un problème avec component_create(). Les tests de component passent, mais un test de bus ne passe pas dû à un segmentation fault en appelant component_create().
Ci-joint une photo des lignes du test qui ne fonctionnent pas ainsi que l'erreur indiquée. On a de la peine à comprendre notre erreur car les tests de component passent.
De plus, on a essayé de debugger avec gdb, mais en ajoutant des breakpoints et en runnant après le programme ne s'arrête pas. Est-ce une spécificité du test ?
Bonjour,
Si vous n'arrivez à déterminer où le segmentation fault a lieu avec votre débogueur, vous aurez peut-être plus de chance avec les outils complémentaires de debugging: ASAN et Valgrind [1].
[1] https://progos.epfl.ch/projet/display.html?file=https://progos.epfl.ch/projet/handouts/dbg-ptr.md
les tests unitaires lancent en effet un nouveau sous-process par test (fork()) et c'est donc plus difficile à suivre. Si vous souhaitez debogguer avec gdb les programme de tests (mais Yassin a raison !), voici quelques conseils :
Bonsoir monsieur,
Auriez vous svp un tutoriel ou de la documentation plus spécifique à ce sujet?
Tous nos tests de jump/call ayant une condition (cc) ne passent pas et on n'arrive pas à débuguer : quand j'essaie cont j'obtiens segmentation fault et je n'arrive jamais aux breakpoints (dans mon propre code) pour trouver la source du problème.
Merci beaucoup pour votre aide,
Leo
si vous avez un SEGV, tapez la commande (gdb) « where » pour savoir où il se produit (cela affiche la pile d'appel).
Par ailleurs, pour un SEGV, peut être que valgrind ou ASAN sont plus appropriés (cf https://progos.epfl.ch/projet/handouts/dbg-ptr.pdf)
Merci beaucoup.
Follow the pulses of EPFL on social networks
© 2023 EPFL, all rights reserved