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

C++Builder Discussion :

Plantage aleatoire... [Non suivi]


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2005
    Messages : 107
    Par défaut Plantage aleatoire...
    Bonjour

    Je sais que ma question est tres vague. Mais voila le probleme. J'ai fait un programme d'environ 10000ligne qui est une interface graphique. Mon programme marche EN GENERAL bien et puis des fois il plante sans que je sache pourquoi, pas forcement au meme endroit. Je me dis que j'ai du faire quelque mauvaise manip. J'ai dons quelques question:

    - quand on fait un f.open("file") il faut tjrs faire un f.close()
    - J'ai plusieurs OpenDialog (et OpenSave), peut etre est-il preferable d'en avoir q'un seul (je dis ca car des fois ca plante orsque que j'ouvre un OpenDialog)
    Sinon je desaloue mes new et j'essaie de faire out comme il faut...donc je comprend pa tres bien...

    Un autre probleme.
    J'alloue des gros vecteur(de la stl). je leur reserve une place superieur a leur besoin. En mode debuggage le programme s'execute bien. mais l'orsque j'execute le .exe tout se faire lors de l'allocation du gros vecteur...pourquoi? ...Par contre si je reduis la taille d'un autre vecteur(qui ne me sert pas pour cet fonction) alors ca ne plante plus dans le .exe

    Je sais que mes questions sont tres vague ...mais la je suis un peu perdu...j'espere que quelqu'un aura quelques indications a me donner.

    Merci beaucoup
    Cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut Try
    Bonjour,

    Tu pourrais essayer d'isoler le problème...

    Par exemple mettre un gros try {.... ] catch (Exception & e) { } autour de ton code et récupérer le e->getMessage ou e->getCause() pour voir d'où ça vient...

    Met au moins des try catch aux endroits où tu as des doutes

    Vérifie les endroits où tu utilises des pointeurs. Met des points d'arrêts pour vérifier que tu passe bien sur les new et les delete.

    Vérifie que la mémoire consommée par ton programme n'est pas un trou sans fond. Tu peux regarder ça avec le gestionnaire des taches de windows par exemple.

    Normalement Builder met déjà un gros try catch dans le fichier cpp racine de ton projet et peut te donner des pistes si tu as compilé en mode "debug"....

    J'espère que ça t'aide un peu...

    Bon courage...

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Execute ton programme avec CodeGuard...en général plantage aléatoire = bug dans un pointeur quelque part.

    A propos de CodeGuard, Gilles Louïse vient de faire un post sur le forum expliquant brièvement comment l'utiliser.

  4. #4
    Membre chevronné Avatar de BigBenQ
    Inscrit en
    Juillet 2005
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 363
    Par défaut Re: Plantage aleatoire...
    Citation Envoyé par Jeane
    J'ai fait un programme d'environ 10000ligne
    Si tout est dans le même fiche, BCB pête un cable de facon aléatoire (constaté à partir de 8000 de codes envirron)

    Il faut donc "partager" ton programme

  5. #5
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Par défaut Re: Plantage aleatoire...
    Citation Envoyé par BigBenQ
    Citation Envoyé par Jeane
    J'ai fait un programme d'environ 10000ligne
    Si tout est dans le même fiche, BCB pête un cable de facon aléatoire (constaté à partir de 8000 de codes envirron)

    Il faut donc "partager" ton programme
    J'ai fait un programme de taille très importante et n'ai pas rencontré ce problème. Peut-être était-ce spécifique à ta plate-forme de développement ?

  6. #6
    Membre chevronné Avatar de BigBenQ
    Inscrit en
    Juillet 2005
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 363
    Par défaut
    Moi je parle de 8000 lignes sur 1 seul fichier.

    En même temps, faire 8000 ligne en 1 fichier, c'est chaud de chaud

  7. #7
    Invité
    Invité(e)
    Par défaut Taille limite
    J'ai une appli dont un fichier .cpp a une taille de 8 320 lignes. Et elle ne plante pas...

    Pourquoi cette limite de 8 000 lignes, BigBenQ ? C'est un bug reconnu par Borland ?

  8. #8
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 26
    Par défaut
    Effectivement, ça parait étrange que Builder crashe au-delà de (seulement) 8000 lignes.

    Ca doit pas faire un si gros exécutable que ça.

    On à souvent tendance à pester après le compilo, jusqu'à ce qu'on trouve son erreur

  9. #9
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    bonjour,
    le problème des >800 lignes est un faux problèmes
    vous pouvez télécharger chez Borland un correctif du Linker qui corrige les points suivants
    ilink32 Version 5.66 ReadMe

    This patch resolves an issue in ilink32 with an access violation when linking together large numbers of object files. The test case used for the patch consisted of 135 object files using the VCL.

    This patch applies to C++Builder6 users and C++BuilderX users who wish to compile VCL applications.

    You must install the patch SKU ( enterprise, professional or standard ) that matches your copy of C++Builder.

    The patch consists of 2 files: ilink32.exe and ilink32.dll, which should install to the bin subdirectory of your C++Builder6 or C++BuilderX install. By default, C++Builder6 is installed to C:\Program Files\Borland\CBuilder6\ and C++BuilderX is installed to C:\CBuilderX\.

    To install the patch:

    1. Download the zip file to your harddrive and unzip it.
    2. Copy ilink32.exe and ilink32.dll to the bin directory of your C++Builder install, copying over the existing files.

    Copyright � 2003 Borland Software Corp.
    All rights reserved.
    cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  10. #10
    Invité
    Invité(e)
    Par défaut Download ?
    Les fichiers ilink32.exe et ilink32.dll sont en version 5.62 sur ma version de C++ Builder 6 et il faut les remplacer par les version 5.66.

    L'article est ici :
    http://bdn.borland.com/article/0,1410,32448,00.html

    La page de téléchargement est ici :
    http://www.borland.com/products/downloads/download_cbuilder.html

    J'ai bien une licence de C++ Builer pro, j'ai bien mon mot de passe et user d'identification, mais je ne trouve pas où est le lien pour télécharger les fichiers ilink32 ???

    Vous avez essayé ?

  11. #11
    Invité
    Invité(e)
    Par défaut find
    Le lien est ici en fait....

    http://www.borland.com/downloads/registered/download_cbuilder.html

    Pas évident à trouver !!!

  12. #12
    Membre chevronné Avatar de BigBenQ
    Inscrit en
    Juillet 2005
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 363
    Par défaut
    Ca venait surement de la ! merki !

    PS : peut etre le même probleme pour Jeane ?

  13. #13
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 17
    Par défaut
    J'amène ma contribution peut être un peu tard mais moi j'ai déjà eu des problèmes lorsque je mélangeais les Open/SaveDialog avec des f.open. Dès que j'en enlevais un, il n'y avait plus de problème.

Discussions similaires

  1. plantage de tache aleatoire
    Par Invité dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 06/02/2015, 07h39
  2. Réponses: 7
    Dernier message: 20/08/2003, 10h33
  3. [Kylix] Plantage IDE Kylix3/Mandrake 9.0
    Par OmicroN dans le forum EDI
    Réponses: 3
    Dernier message: 28/01/2003, 23h04
  4. Algorithmes de generateur pseudo-aleatoire
    Par funx dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 06/09/2002, 18h33
  5. nombre aleatoire
    Par Bob dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 17/06/2002, 18h12

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