Segmentation fault lors de l'appelle de la fonction lcdc_cycle

Segmentation fault lors de l'appelle de la fonction lcdc_cycle

par Robin Luca Claudio Plumey,
Number of replies: 8
Bonjour,

Nous avons testé les code de notre simulateur mais lors de l’exécution,
nous recevons un "Segmentation fault" lors de l'appelle de la fonction lcdc_cycle au cycle 256.

En annexe : le résultat de la commande et la ligne en question.

Merci d'avance,
Plumey Robin
Attachment CMD.png
Attachment LIGNE.png
In reply to Robin Luca Claudio Plumey

Re: Segmentation fault lors de l'appelle de la fonction lcdc_cycle

par Jean-Cédric Chappelier,
In reply to Jean-Cédric Chappelier

Re: Segmentation fault lors de l'appelle de la fonction lcdc_cycle

par Capucine Mien Verone Berger-Sigrist,

Bonjour, 

On a exactement le même problème, et on a bien init et plug le lcd en dernier, à la fin de notre gameboy_create(). On a aussi vérifié les valeurs d'initialisation, on_cycle et next_cycle valent -1, bus[REG_LCD] = 0 et l'offset 524512. Par contre, le champ on du lcd reste a 0, ce qui est assez étrange...

Merci d'avance,

Capucine Berger

In reply to Capucine Mien Verone Berger-Sigrist

Re: Segmentation fault lors de l'appelle de la fonction lcdc_cycle

par Jean-Cédric Chappelier,

Hmmmm...
Alors,un SEGV ici... je dirais que le plus probable c'est sûrement l'accès à la GRAPH_MEM qui déborde, genre 1 cycle de trop (257 au lieu de 256 ?) : incrémentez vous bien le compteur de cycle au bon moment ? partez vous de 1 ?

ou alors peut être l'accès aux infos mémoire de la cartouche ne sont pas bons : avez vous bien pluged la cartouche ? (cf https://moodlearchive.epfl.ch/2019-2020/mod/forum/discuss.php?d=35605#p72992)

Et sinon je ne vois pas pour le moment :-(

In reply to Jean-Cédric Chappelier

Re: Segmentation fault lors de l'appelle de la fonction lcdc_cycle

par Robin Luca Claudio Plumey,

Bonjour,

après avaloir consulté les deux lien que vous m’avez proposé je n'ai pas réussi a résoudre le problème,
donc je me permet de donné plus d'information.
- l'état de la gameboy a la fin de gameboy_create()
- l'état de la gameboy au début du cycle 256

Cordialement,
Plumey Robin

Attachment 0.png
Attachment 256.png
In reply to Robin Luca Claudio Plumey

Re: Segmentation fault lors de l'appelle de la fonction lcdc_cycle

par Jean-Cédric Chappelier,

ça crashe au cycle 256 ou 257 ?
comme dit juste avant ce 256 n'est pas annodin (taille de l'image) et je pense à un off-by-1 lié au cycle : partez vous de 1, incrémentez vous au bon moment ?

In reply to Jean-Cédric Chappelier

Re: Segmentation fault lors de l'appelle de la fonction lcdc_cycle

par Robin Luca Claudio Plumey,

oui merci, avec le commentaire d'avant ça a résolu le problème.

Bonne journée.

In reply to Robin Luca Claudio Plumey

Re: Segmentation fault lors de l'appelle de la fonction lcdc_cycle

par Jean-Cédric Chappelier,

Peut-on savoir ce que c'était (pour aider les autres si jamais) ?

In reply to Jean-Cédric Chappelier

Re: Segmentation fault lors de l'appelle de la fonction lcdc_cycle

par Elior Jacques Papiernik,
Bonjour,

On avait le même souci, mais la cause n'était peut être pas la même.
Chez nous, il a fallu plug la cartridge dans gameboy_create (comme indiqué sur un des liens cités dans ce fil de discussion).

Bonne soirée !