Deutsch   English   Français   Italiano  
<ugpam8$3qi6s$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.mixmin.net!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Blady <p.p11@orange.fr>
Newsgroups: fr.comp.lang.ada
Subject: Re: Crash de Start_Search
Date: Wed, 18 Oct 2023 21:12:07 +0200
Organization: A noiseless patient Spider
Lines: 58
Message-ID: <ugpam8$3qi6s$1@dont-email.me>
References: <ugka3k$j29$1@rasp.pasdenom.info>
 <ugkaad$j29$2@rasp.pasdenom.info> <ugle17$v3c$1@rasp.pasdenom.info>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 18 Oct 2023 19:12:08 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="1873db54edfde95d223be82464085ff6";
	logging-data="4016348"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX18reNBa6cT3fFXAu67dDx32"
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0)
 Gecko/20100101 Thunderbird/102.15.1
Cancel-Lock: sha1:N5pULWZ1vvAe+4Bf4or1Qi6tc8k=
In-Reply-To: <ugle17$v3c$1@rasp.pasdenom.info>
Content-Language: fr, en-US
Bytes: 3025

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.