IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

[Lazarus] Access violation


Sujet :

Lazarus Pascal

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Par défaut [Lazarus] Access violation
    Bonsoir,

    J'ai une "violation d'access" quand je lance ma petite applis. Mais l'origine (dll, programme externe ...) n'est pas mentionnée. Il n'y a rien dans les journaux d'évenements (j'allais dire "normal" ) et Lazarus ne logue évidememnt pas les événement survenus hors de son contexte à lui (le pb se traduisant alors avec extrémement explicite "sigsegv" ).

    Si quelqu'un connait un outil pour ca, ca 'arrangerais.
    Merci

  2. #2
    Membre émérite
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Par défaut
    Bonjour,

    Je pari a 10 contre 1 que tu utilises un objet non alloué !

    @+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Par défaut objet ...
    Bonjour Chris37 et meci de ta réponse

    En fait c'est possible, mais je n'ai créer "directement" aucun objet.
    J'ai un fichier texte que je compile avec lazres, j'ajoute la directive dans la rubrique initialization de unit1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    initialization
      {$I unit1.lrs}
      {$I banksql.lrs}
    end.
    je rapelle la ressource ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    begin
         fileSQL := (extractfilepath(application.exename)+'bank.sql');
         showmessage(fileSQL);
         tMemo.Lines.Add(lazarusresources.Find('banksql').Value);
    end;
    ca marche qu'à ligne showmessage...

    Je continue mes tests et recherche, mais je me demande si Vista n'y serait pas pour quelque chose

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Par défaut Au temps pour moi ....
    ca marche, maintenant.
    Je n'avais pas compris que les ressources devaient "taguées" et que c'est le marquage qu'il fallait appeler ;-)

    Résolu, donc.

  5. #5
    Membre émérite
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Par défaut
    Salut,

    Une question !

    C'est une requête sql que tu places dans la ressource ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Par défaut
    Citation Envoyé par chris37 Voir le message
    Salut,

    Une question !

    C'est une requête sql que tu places dans la ressource ?
    Non, 56

    Mais j'ai fait des progrès : je met dans chaque fichier un sous ensemble cohérent (par exemple tout ce qui concours à la création de la base ou la requête nécessaire à un ajout). Je les nomme en fonction du projet et du type (SQLxxx pour le SQL, ICOxxx pour les icones) et je crée un filelist. Enfin, je fait un script qui doit me le créer, en prenant des arguments tels que SQL*.sql, ICO*.png ...

    Le script bash est en cours d'écriture ;-)

  7. #7
    Membre émérite
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Par défaut
    ok merci

    Bon courage alors

    Cordialement,
    Chris

  8. #8
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Par défaut
    J'ai le même problème qui apparait dans mon application quand je compile.
    Le problème semble venir des méthodes d'un objet : la procedure objet.create() fonctionne correctement dans le programme principal mais les autres procedures et fonctions comme objet.destroy ou objet.afficher dans exemple font planter le programme avec "sigsegv" comme message du debogger et acces violation si le debogger est desactivé.

    Le programme principal est de la forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    unit program1;
     
    {$mode objfpc}{$H+} 
    interface
     
    uses
      Classes, SysUtils,unit2;
     
    type
     
      { TForm1 }
     
      TForm1 = class(TForm) 
    Edit1: TEdit;
    ...
    end;
    var
    Form1: TForm1; monobjet:objet;
     
    implementation
    { TForm1 }
    ...
     
    initialization
      {$I fenetre1.lrs}
    end.
    et l'unité de la forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    unit unit2;
     
    {$mode objfpc}{$H+}
     
    interface
     
    uses
      Classes, SysUtils; 
     
     
    Type objet = class 
    public
    a,b,b:real;
    constructor Create (c,d,e:string);
    destructor destroy ; override;
    procedure afficher (var d,e,f:string);
    end;
     
    implementation
     
    constructor objet.Create (d,e,f:string);
    begin
    a:=strtofloat(d);
    b:=strtofloat(e);
    c:=strtofloat(f);
    end;
     
    destructor objet.destroy ;
    begin
    end;
     
    procedure afficher (var d,e,f:string);
    begin
    d:=floattostr(a+b);
    e:=floattostr(a+b+c);
    f:=floattostr(a-c);
    end;
     
    end.

    si le problème vient de l'allocation de l'objet, que faut rajouter pour corriger cela ?

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Par défaut
    Citation Envoyé par Comete338 Voir le message
    J'ai le même problème qui apparait dans mon application quand je compile.
    Bonjour,

    Cette erreur me semble générique et ne permet pas vraiment le debug. Pour en savoir plus sur l'origine du problème quand ca se produit, je réninitialise le debugger et je lance l'appli compilée directement depuis le repertoire du projet. C'est comme ca que j'ai pu faire le lien avec les erreurs que j'ai rencontré.

    Bonne chasse au bugs ;-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/12/2008, 22h30
  2. Access violation avec fseek
    Par baleine dans le forum C
    Réponses: 7
    Dernier message: 18/03/2005, 16h41
  3. Réponses: 7
    Dernier message: 22/02/2005, 13h07
  4. [DELPHI][PROECEDURES STOCKES] Access violation
    Par All Jinx dans le forum Bases de données
    Réponses: 6
    Dernier message: 14/05/2004, 15h57
  5. Réponses: 3
    Dernier message: 22/05/2002, 09h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo