PureBasic

Forums PureBasic
Nous sommes le Sam 15/Aoû/2020 8:39

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 
Auteur Message
 Sujet du message: Erreur sous PARROT, UBUNTU et MINT...
MessagePosté: Dim 28/Juin/2020 21:51 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 9019
Je laisse une chance (encore) à PB et LINUX.. Après de multiples déboires, j'airrive à le lancer.

J'ai réaliser un soft de récupération de liens. Un gestionnaire de téléchargement en gros.
On ajoute X liens dans une liste chainée et on clique sur télécharger.
Les téléchargements se font un par un dans un thread que voici.

Je précise que sous windows le soft marche... Mais sous linux, lorsque je clique sur mon bouton telecharger.
Mon thread se lance mais j'ai une erreur dans ma proce.

Voilà les logs du débug et la proce en question.
Merci pour votre aide.

Code:
[22:43:23] Waiting for executable to start...
[22:43:23] Executable type: Linux - x64  (64bit, Unicode, Thread)
[22:43:23] Executable started.
[22:43:23] [WARNING] 6.2MAC.pb (Line: 1)
[22:43:23] [WARNING] GLib-GIO (DEBUG): _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ‘gio-vfs’
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GIO (DEBUG): _g_io_module_get_default: Found default implementation dconf (DConfSettingsBackend) for ‘gsettings-backend’
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GObject (CRITICAL): g_value_take_string: assertion 'G_VALUE_HOLDS_STRING (value)' failed
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GObject (WARNING): ../../../gobject/gtype.c:4268: type id '0' is invalid
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GObject (WARNING): can't peek value table for type '<invalid>' which is not currently referenced
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GObject (WARNING): ../../../gobject/gvalue.c:185: cannot initialize GValue with type '(null)', this type has no GTypeValueTable implementation
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GObject (CRITICAL): g_value_type_compatible: assertion 'src_type' failed
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GObject (CRITICAL): g_value_copy: assertion 'g_value_type_compatible (G_VALUE_TYPE (src_value), G_VALUE_TYPE (dest_value))' failed
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GObject (CRITICAL): g_value_type_compatible: assertion 'src_type' failed
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GObject (WARNING): unable to set property 'text' of type 'gchararray' from value of type '(null)'
[22:44:07] The Program was killed.



Code:
Procedure DDownload(*ldvm)
  Protected LASTPATH$, PATH$
 
  N = ListSize (link())
  Debug ""
  Debug " --- TELECH ---------------------"
  Debug Str(n) + " liens détecté(s)"
 
  DisableGadget(#BT_SUPPR,1)
  DisableGadget(#BT_ADDLINK,1)
  DisableGadget(#BT_DOWNLOAD,1)
 

 
  If LASTPATH$ = "" : LASTPATH$ = GetCurrentDirectory() : EndIf
  PATH$ = PathRequester("Choisissez un dossier de sauvegarde",LASTPATH$)
  LASTPATH$ = PATH$ ; <--- Sous linux erreur ICI
 
  ForEach LINK()
    Q = 0
    Fichier$ = LINK()\NAME
   
    ; ;Debut du téléchargement
    F$ = GetFilePart(Fichier$,#PB_FileSystem_NoExtension)
    Telechargement = ReceiveHTTPFile(Link()\DIRECTURL, PATH$+Fichier$, #PB_HTTP_Asynchronous)
    Size = Val(link()\SIZE)
   
    If Telechargement
      Repeat
        Progression = HTTPProgress(Telechargement)
        Select Progression
          Case #PB_HTTP_Success
            Taille = FinishHTTP(Telechargement)
            SetGadgetText(#info,"Téléchargement terminé (Taille: " + Taille + ") 100% " )
            If PlayS = #True : PlaySound(#SON) : EndIf
            SetGadgetState(#PBar1,100)
            Q = 1
           
          Case #PB_HTTP_Failed
            SetGadgetText(#info,"Le téléchargement a échoué")
            If PlayS = #True : PlaySound(#SON) : EndIf
            SetGadgetState(#PBar1,0)
            Q = 1
           
          Case #PB_HTTP_Aborted
            SetGadgetText(#info,"Le téléchargement a été interrompu")
            SetGadgetState(#PBar1,0)
            Q = 1
           
          Default
            If size <> 0
              F$ = GetFilePart(Fichier$,#PB_FileSystem_NoExtension)
              Progression$ = StrF((Progression / Size) * 100, 0)
              SetGadgetText(#info, "Téléchargement de " + f$ +" "+ Progression$ + "%" )
              SetGadgetState(#PBar1,(Progression / Size) * 100)
            EndIf
           
        EndSelect
        ;   
        Delay(500) ; Libérer le CPU
      Until Q = 1
     
    Else
      Debug "Erreur de téléchargement"
    EndIf
   
  Next
 
  ClearList(LINK())
  ClearGadgetItems(#combo)
  DisableGadget(#BT_ADDLINK,0)
  UpdateCombo()
Off()
 
 
EndProcedure

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.6x / 5.7x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Erreur sous PARROT, UBUNTU et MINT...
MessagePosté: Mar 30/Juin/2020 10:33 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3659
Localisation: Encore ?
Est-ce que tu peux tester GetCurrentDirectory$() ?
Puis PathRequester() ?

Tout seul(s)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Erreur sous PARROT, UBUNTU et MINT...
MessagePosté: Mar 30/Juin/2020 11:27 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 9019
Merci.

Getcurrent seul :
Code:
PATH$ = /home/nomutilisateur/Téléchargements/purebasic/compilers/


Ensuite si j'ajoute
Code:
PATH$ = GetCurrentDirectory()
Debug "PATH$ = " + PATH$
test$ = PathRequester("",PATH$)
Debug "TEST$ = " + test$

Code:
ça me retourne TEST$ = /home/nomutilisateur/Téléchargements/purebasic/compilers/


Mais dans le compilo

Citation:
[12 :51 :38] Attente du démarrage du programme...
[12 :51 :38] Type d'exécutable: Linux - x64 (64bit, Unicode)
[12 :51 :38] Exécutable démarré.
[12 :51 :38] Exécution du programme terminée.
[12 :52 :42] Attente du démarrage du programme...
[12 :52 :42] Type d'exécutable: Linux - x64 (64bit, Unicode)
[12 :52 :42] Exécutable démarré.
[12 :52 :42] [AVERTISSEMENT] Ligne: 3
[12 :52 :42] [AVERTISSEMENT] GLib-GIO (DEBUG): _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ‘gio-vfs’
[12 :52 :42] [AVERTISSEMENT] Ligne: 3
[12 :52 :42] [AVERTISSEMENT] GLib-GIO (DEBUG): _g_io_module_get_default: Found default implementation dconf (DConfSettingsBackend) for ‘gsettings-backend’
[12 :52 :47] Exécution du programme terminée.



Cependant dans soft complet mon requester s'ouvre mais la fenêtre est gelée sans que je ne puis rien n'y faire sinon tuer le prog via la croix rouge de l'ide.

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.6x / 5.7x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Erreur sous PARROT, UBUNTU et MINT...
MessagePosté: Mar 30/Juin/2020 15:47 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3659
Localisation: Encore ?
Tu as un caractère UTF8 "â schtroumpf schtroumpf" qui fait balises autour de deux expressions :

1) gio-vfs
2) gsettings-backend

https://developer.gnome.org/gio/stable/running-gio-apps.html

Est-ce que tu peux faire un petit double prog serveur/client par les pipes qui servira de cobaye ?

Un prog client qui ouvre une console, affiche les variables d'environnement puis attend l'appui sur [Entrée].

Un prog serveur (pipe ouverte en lecture et en écriture) qui récupère l'affichage du client, le stocke, simule par la pipe la touche [Entrée].

Je soupçonne un problème de type de chaîne... Mais ce n'est qu'un soupçon.

added : page "parent" du lien ci-dessus : https://developer.gnome.org/gio/stable/GVfs.html

Et si ça te barbe, teste SANS débogueur PureBasic pour voir si ça se gamelle. Si ça ne se gamelle pas, force le débogueur à travailler en ASCII plutôt qu'en UTF-8.

Voilà mes quelques impressions bien "abstraites" du problème...


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Erreur sous PARROT, UBUNTU et MINT...
MessagePosté: Ven 03/Juil/2020 8:34 
Hors ligne

Inscription: Mar 09/Déc/2014 20:02
Messages: 76
Sous linux la gestion des threads est plus tatillonne que sous windows.

Essaye d'enlever tous les setgadgetstate et setgadgettext.
Il faut passer les affichages via postevent au thread principal (la boucle d'event)

J'espère que ça aide.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Erreur sous PARROT, UBUNTU et MINT...
MessagePosté: Ven 03/Juil/2020 14:22 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 9019
Merci à vous, semaine chargée, pas pu encore m'y remettre.
Je test dès que possible

--- EDIT ----
J'ai toujours le message GIO dans le compilo mais en déplaçant tout ce qui est PathRequester hors du Thread, le programme compilé marche !
Je crois vraiment que PB et linux c'est pas encore ça.. Mais en tout cas ça a l'air de fonctionner. Merci de vos conseils.

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.6x / 5.7x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye