Problème Destructeur classe System

Re: Problème Destructeur classe System

by Jean-Cédric Chappelier -
Number of replies: 0

pour déboguer un programme. il est bon de compiler avec l'option -g et aussi tous les warning, en tout cas -pedantic -Wall. Est-ce que vous le faites ?
(ceci dit, dans votre cas, je ne pense pas que cela vous donnera la source de l'erreur ; mais commençons par une base simple).

Ensuite : êtes vous au clair sur la gestion de votre mémoire : est-ce que vous faites des new ? des delete ? (normalement non puisque vous utilisez les smart pointers)
Et pourquoi utiliser des shared_ptr ?? (non présentés en cours pour de bonne raisons) un unique_ptr ne serait pas suffisant ? un « pointeur à la C » ?

Enfin, si vraiment vous ne trouvez pas, valgrind ou ASan (-fsanitize=address) peuvent être de bons outils :
  1. dans le terminal, lancez
    valgrind monprogramme
    p.ex.
    valgrind test-toupie
    Bien sûr il faut avoir installé valgrind (https://valgrind.org/) ou alors aller sur les VM de l'Ecole
  2. compilez en ajoutant l'option -fsanitize=address ; mais il faut avoir installé ASan (https://github.com/google/sanitizers/wiki/AddressSanitizer) ou alors aller sur les VM de l'Ecole
  3. ne faites pas les 2 en même temps !!