[Résolu] Bug bizarre incompréhensible
Bonsoir !
Je développe dans le cadre d'un projet scolaire un jeu de tétris. Hélas, un bug bizarre me bloque depuis quelques temps.
Voilà la source : http://pastebin.com/mca18847
La compilation requiert la SFML de Laurent Gomila.
Mon problème : dans la méthode place de la classe Tetris, dans la boucle, gdb me dit que je modifie une variable, alors que c'est faux (ligne ~404).
Voilà ce que me dit gdb :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| kreeg@kubuntu:~/Bureau/C++$ gdb ./tetris -q
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) b 281
Breakpoint 1 at 0x8049ef7: file tetris.cpp, line 281.
(gdb) enable once 1
(gdb) run
Starting program: /home/kreeg/Bureau/C++/tetris
[Thread debugging using libthread_db enabled]
[New Thread 0xb6d76900 (LWP 8325)]
[Switching to Thread 0xb6d76900 (LWP 8325)]
Breakpoint 1, Tetris (this=0xbfd55888, renderer=0x80f5dd0) at tetris.cpp:281
281 }
(gdb) p ¤t_brick
$1 = (Tetris::Brick *) 0xbfd55888
(gdb) watch *(0xbfd55888)
Hardware watchpoint 2: *3218430088
(gdb) continue
Continuing.
Hardware watchpoint 2: *3218430088
Old value = 135419368
New value = 3
Tetris::place (this=0xbfd55888, p={x = 1, y = -21}, dim={x = 4, y = 1}) at tetris.cpp:404
404 for (int j = p.y - dim.y + 1; j <= p.y; j++)
(gdb) kill
Kill the program being debugged? (y or n) y
(gdb) quit
kreeg@kubuntu:~/Bureau/C++$ |
Merci d'avance !