Fuite mémoire / CloseScreen / CloseWindow

Forum Amiga Coding Fuite mémoire / CloseScreen / CloseWindow

  • Ce sujet contient 4 réponses, 2 participants et a été mis à jour pour la dernière fois par astrofra, le il y a 2 années et 6 mois.
  • Créateur
    Sujet
  • #125854
    seb31
    • Level 0 - Newbie
    • Messages : 8

    Bonjour à tous,

    Je cherche un peu d’aide pour éviter dans un programme C d avoir une fuite mémoire lors de la fermeture de l’écran & fenêtre à la sortie.

    Je suis face a un souci en effet lors de la fermeture des écrans fenêtre , StormC me dit que les écrans et fenêtres ne sont pas fermés !  pourtant le résultat de CloseScreen est bien à TRUE et les écrans se ferment , mais il manque systématiquement une 50aine de Ko a chaque exécution en CHIP ram. Je ferme bien les fenêtres/écrans/libraries dans l’ordre inverse de leur ouverture… selon tous les tutos & exemples…

    dans le même environnement, j ai des projets d’exemples qui compilent bien et relâchent bien la mémoire des écrans/fenêtres mais d’autres pas… pourtant ils sont très simples , par exemple :

    l' »exemple 1″ de Amiga C  Manual (ACM sur aminet) ne libère pas la mémoire

    par contre l' »anim_ex » des Rom Kernal (animtools) oui…

    j y perds mon latin C et  je sèche !

    ma config : A500 OS 3.2 PIStorm 68030 + StormC4 (compile sous stormC3)

    Merci d’avance, je suis sur que quelqu’un a déjà du avoir ce souci au moins 1 fois!

    impossible de trouver quelque aide que ce soit sur internet, si vous avez une idée je prends :)

     

    Sébastien

     

     

Affichage de 4 réponses de 1 à 4 (sur un total de 4)

Partager sur vos réseaux sociaux préférés :
Facebooktwitterredditpinterestlinkedintumblrmail

  • Auteur
    Réponses
  • #125855
    seb31
    • Level 0 - Newbie
    • Messages : 8

      Bon il semblerait que ce soit bon maintenant ….

      j’ai retirer les directives static de newscreen & newwindow…

       



      #125856
      astrofra
      • Level 4
      • Messages : 126

        Comment est-ce que tu mesures la quantité de mémoire disponible en sortie de programme ?
        Si tu fais un ‘avail’, ça peut t’induire en erreur car le système ne libère pas forcément tout ce qui pu être chargé lors de l’exécution de ton programme (genre, les libraries).

        Pour forcer l’OS a tout libérer, tu peux tenter un ‘avail flush’:

        http://www.mattowen.co.uk/amiga/amiga-os-command-reference-help/avail.html

        www.astrofra.com | fra.planet-d.net

        #125857
        seb31
        • Level 0 - Newbie
        • Messages : 8

          Bonjour @astrofa

          oui j ai bien fait avec avail flush, dans un shell…

          et un prog d’aminet : memleak

          je récupère quasiment tout la ;) +/- epsilon

          avant me manquait quasiment 50-80k !

          (tout ca sans doute a cause d’un static devant mes structures newscreen & newwindow! ou des __chip sur mes tables bitplans…)

          par contre storm me dit toujours que l écran/fenêtre n’est pas fermé …

          je viens de recompiler / re exécuter entre des « avail flush », je « perds » 54 octets

          à bientôt pour de nouvelles aventures Amiga C ! des que je maitriserai un peu mieux cet environnement storm…

          y a 30 ans on compilait sur des diskettes avec des r/w errors en pagaille ! puis sur des disques durs tout lents en XT pour ma part…

          là quel confort en RTG + du hardrive qui envoit sur SD de – de 1 cm 2 !!! + réseau & pistorm – bon c’est pas visual studio … en attendant que le project sous vscode integre stdio et stdlib correctement…https://marketplace.visualstudio.com/items?itemName=BartmanAbyss.amiga-debug

          a++

          :bye:

           

           

           

           

           

           

           

          #125858
          astrofra
          • Level 4
          • Messages : 126

            Ah oui, en utilisant un AmigaOS débridé avec une émulation sous JiT, c’est effectivement plus confort :)
            Maintenant, si tu veux coder sous VSCode, tu peux. C’est ce que j’ai fait sur Athanor

            L’émulateur accède en direct au filesystem de ma machine hôte (ici OS X), et je compile avec SAS/C dès que j’ai besoin, l’ému restant allumé en permanence… ça offre l’avantage d’Intellisense et autre (je lui ai fourni tous les .h d’AmigaOS).

            Si tu veux aller plus loin, tu peux même cross compiler depuis ta machine hôte (mais perso je ne suis pas allé jusque là, par flemme B-) )

            Le truc ultime étant de debugger en « remote » mais là c’est pour les adultes, j’sais pas faire…

            www.astrofra.com | fra.planet-d.net

          Partager sur vos réseaux sociaux préférés :
          Facebooktwitterredditpinterestlinkedintumblrmail
          Affichage de 4 réponses de 1 à 4 (sur un total de 4)
          • Vous devez être connecté pour répondre à ce sujet.