Quoi, tu ne connais pas PB ? Va falloir parcourir tout le forum alors !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 04-12-2009 09:57:18

Eric06  
Membre
Date d'inscription: 29-03-2007
Messages: 18
Pépites: 89
Banque: 0

Crash windows aleatoires

Bonjour à tous.

je suis confronté à un problème récurrent qui commence fortement à irriter mes clients.

Je maintiens une application existante depuis queqlques années et qui ets passé par PB 6.5, PB 8 et PB 10.5.
Depuis l'ajout d'une fonctionnalité de choix d'imprimante et le passage du dernier patch PB, il arrive 2 choses :
- des plantages aléatoires à differents endroits de l'application ( choix d'un menu, changement d'ecran, generation d'un devis, ...) . Ces planatges sont des crash windows ( 'L'application xxxx.exe a genere une erreur bla bla bla)
Ces plantages a priori sont résolus si  on utilise PB 11

- des plantages quand les editions sont effectuées par PDF. Chose etrange, cela depend des postes, des devis, du moement ou on le fait.
ceci n'est pas corrigé par la version 11

Bref, on peut qualifier d'instable cette version.

sur nos postes d edev, jamais aucun probleme.
On a verifie les configs des postes, la version du runtime tout est identique.

Je ne sais plus quelles pistes explorer.

est ce que l'un d'entre vous à déjà rencontrer ce genre de problème ?

Toute aide sera la bienvenue.

merci

Hors ligne

 

#2 04-12-2009 10:49:34

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Crash windows aleatoires

Ce ne serait pas un problème mémoire par hasard?
Les postes de dev sont souvent plus richement dotés sur ce point que les postes utilisateurs.


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#3 04-12-2009 11:16:28

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: Crash windows aleatoires

Bonjour,

J'ai ce problème symptomatique avec PB 11.2.8542. L'application a également subit différentes migrations : 5,7,9,11.

J'ai des crashs identiques sur les postes sollicitants beaucoup l'impression (bons de livraisons, factures, ....). Il va falloir que je travaille également sur le problème ça commence à énerver les utilisateurs.

La fréquence des crashs est fortement dépendante du type d'imprimante. Déjà, il semble que l'utilisation du tout dernier drivers d'imprimante améliore les choses (sur HP utilisation du PCL5e au lieu de PCL6 améliore les choses).

Je ne constate effectivement aucun problème sur les postes de développement. Mais, je ne sollicite pas l'impression comme un utilisateur final.

Par contre, la configuration du poste peut être un début de piste. C'est effectivement les postes les plus anciens de la société sur lesquels se produisent les problèmes donc les moins biens pourvus matériellement.

Le problème est le caractère aléatoire du problème qui m'empêche de lancer l'application en mode /PBDEBUG pour identifier la ligne de code à l'origine du problème.

Je n'utilise pas les derniers EBF PB 11.2 car des régressions ne me permettent plus de compiler en automatique avec ORCA.

Hors ligne

 

#4 07-12-2009 11:31:54

FMolinas  
Membre Geek
Lieu: Lyon
Date d'inscription: 12-06-2007
Messages: 87
Pépites: 97
Banque: 6,435,474,948,567

Re: Crash windows aleatoires

J'imagine que tu utilises l'API de Windows pour supporter le choix d'imprimante. Si c'est le cas, vérifie que tu as pré-initialisé (avec "space(255)" par exemple) toutes les chaines de caractères passées par référence.
Au delà, je sèche.

Hors ligne

 

#5 07-12-2009 16:54:17

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: Crash windows aleatoires

Bonjour,

Si tu oublies de pré-initialiser les variables, ça ne pardonne pas, le GPF est immédiat.

Je songe plutôt à une fuite mémoire avec un DESTROY manquant quelque part comme début de piste.

Hors ligne

 

#6 07-12-2009 17:22:15

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Crash windows aleatoires

Autre piste à explorer en cas de fuite mémoire: les objets OLE.
Quand tu utilises des instructions OLE, pense à invoquer le garbage collector
régulièrement dans ton code.


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#7 08-12-2009 15:37:22

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: Crash windows aleatoires

foon a écrit:

Autre piste à explorer en cas de fuite mémoire: les objets OLE.
Quand tu utilises des instructions OLE, pense à invoquer le garbage collector
régulièrement dans ton code.

Même sans OLE. Avec PB11.5.1 Build 4566 je viens de résoudre un problème de plantage "aléatoire" en ajoutant une instruction GarbageCollect() dans une boucle for...next existante (où il n'y avait pourtant aucun create)

J'ai également constaté qu'en déclarant un tableau à dimension variable en instance d'un objet. Si on l'initialise à la déclaration, alors PB ajoute un item vide de façon aléatoire lors de l'utilisation.

Code: pb

// Déclaration
string is_mon_tableau = {"val1","val2","val3"}


// Dans le code de l'objet

// upperbound(is_mon_tableau[]) = 3
// plusieurs instructions plus loin sans manipuler le tableau...
// upperbound(is_mon_tableau[]) = 4

Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#8 08-12-2009 15:53:57

Eric06  
Membre
Date d'inscription: 29-03-2007
Messages: 18
Pépites: 89
Banque: 0

Re: Crash windows aleatoires

Merci pour vos reponses.
je vais regarder cette histoire de fuite memoire plus précisement.

je vous tiens au courant

Hors ligne

 

#9 09-12-2009 12:57:16

FMolinas  
Membre Geek
Lieu: Lyon
Date d'inscription: 12-06-2007
Messages: 87
Pépites: 97
Banque: 6,435,474,948,567

Re: Crash windows aleatoires

buck a écrit:

Si tu oublies de pré-initialiser les variables, ça ne pardonne pas, le GPF est immédiat.

C'est ce que je pensais aussi... Mais par expérience, ce n'est pas toujours immédiat, d'où ma note.

Hors ligne

 

#10 02-02-2010 16:30:13

Eric06  
Membre
Date d'inscription: 29-03-2007
Messages: 18
Pépites: 89
Banque: 0

Re: Crash windows aleatoires

Bon ca m'a pris un peu (voire beaucoup ) de temps mais j'avance un peu sur le sujet.
J'ai enfin pu déterminer l'endroit qui provoque le crash.
Il s'agit d'un rowcopy dans une Datawindow child.
Cela provoque un plantage sur la dll pbdwe105.DLL
Cela ne le fait que sur certaines editions mais je n'ai pas encore compris la raison exacte.
Surtout que j'effectue deja 2 rowscopy sur 2 autres DWC avant sans probleme;

J'ai eu un espoir en lisant les keynotes de la derniere EBF sur pb11.5  mais ca n'a rien changé au probleme.

Bref je continue mes recherches.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22