Re: Crash de Start_Search

Liste des GroupesRevenir à fcl ada 
Sujet : Re: Crash de Start_Search
De : p.p11 (at) *nospam* orange.fr (Blady)
Groupes : fr.comp.lang.ada
Date : 18. Oct 2023, 21:12:07
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <ugpam8$3qi6s$1@dont-email.me>
References : 1 2 3
User-Agent : Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.15.1
Le 17/10/2023 à 09:44, DrPi a écrit :
 Le 16/10/2023 à 23:35, DrPi a écrit :
 > > J'ai oublié de préciser que le problème est déclenché dès qu'un caractère non ASCII se trouve dans un nom de fichier/dossier.
 > L'encodage des caractères exotiques varie d'un système à l'autre, et d'une implémentation d'Ada à l'autre. Ca peut être de l'UTF8, des pages de code Windows...
  > Ici, vraisemblablement, l'encodage ne correspond pas entre le système et le programme. Tâche de trouver de la doc...
 Ce qui m'étonne, c'est que le crash se produit dans la fonction Dir_Search, fonction de la runtime.
Apparemment, plus préciément, dans le calcul d'une date (Ada.Calendar.Arithmetic_Operations.Add).
 C'est étrange et je ne vois pas comment remédier à ce problème. Il n'y a rien à ce sujet ici : http://www.ada-auth.org/standards/rm12_w_tc1/html/RM-A-16.html
Bonjour Nicolas,
J'ai testé sur macOS ça tourne :
% ./bin/test_20231018_dir_search
Test en cours...
Found : .
Found : ..
Found : Test avec entête.txt
Le code concerné est :
          C_Name := Name & ASCII.NUL;
          Date := C_Modification_Time (C_Name'Address);
          if Date = Invalid_Time then
             raise Use_Error with
               "Unable to get modification time of the file """ & Name & '"';
          end if;
Je suspecte la fonction C_Modification_Time avec des caractères accentués ayant un code différent entre Linux / macOS / Windows, ce qui est souvent le cas pour ces fonctions codées en C :
    function C_Modification_Time (N : System.Address) return Ada.Calendar.Time;
    pragma Import (C, C_Modification_Time, "__gnat_file_time");
Il faudrait aller voir dans le code C de __gnat_file_time.
Sinon tu peux toujours poster un rapport d'anomalie sur https://gcc.gnu.org/bugzilla.
Pascal.

Date Sujet#  Auteur
16 Oct 23 * Crash de Start_Search6DrPi
16 Oct 23 `* Re: Crash de Start_Search5DrPi
17 Oct 23  `* Re: Crash de Start_Search4DrPi
18 Oct 23   `* Re: Crash de Start_Search3Blady
18 Oct 23    `* Re: Crash de Start_Search2DrPi
19 Oct 23     `- Re: Crash de Start_Search1Stéphane Rivière

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal