Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
J'ai des crash intermittent et non compréhensible sur le PBSHR115.dll en exécutable (version compiler et non développement). Comme je ne suis pas capable d'avoir le problème lorsque j'exécute mon application par PowerBuilder, je ne réussi pas à trouver la source du problème.
Est-ce que quelqu'un à déjà rencontré ce genre de problème et a trouvé une solution pour le résoudre?
P.S. J'ai installé la dernière version des runtimes PB11.5.1, soit le build 5032 et le problème est encore présent.
C'est sensiblement ce genre de problème car je fais beaucoup d'appel API pour utiliser des composantes graphiques de windows.
http://search.sybase.com/kbx/changerequ … _id=661222
Si quelqu'un a la moindre idée, n'hésitez pas à écrire un commentaire!
Merci.
Hors ligne
Salut, tu as essayé de tracer le tabernak' d'exe ?
Hors ligne
Tu parles d'ajouter /PBDebug à l'appel de mon application?
Hors ligne
oui, cf le cris' de post de foon (que j'épingle au passage)
Hors ligne
par expérience, il arrive que le fichier de trace de la VM (${exe_name}.dbg) généré par l'option /PBDEBUG soit tronqué au début, et l’interprétation n'est pas très facile. J'ai écrit un petit tools pour relire et représenter ces fichiers dans un arbre graphique.
Hors ligne
Bonjour,
La grande classique pour ce type de crash avec les fonctions de l'API c'est l'oubli de réserver l'espace mémoire pour une "string" retournée par référence par une fonction de l'API :
ulong lul_buffer = 256 as_path = Space(lul_buffer) // Attention, réserver la place pour le retour sinon GPF RETURN GetTempPathA(lul_buffer, as_path)
Hors ligne
Merci pour vos idées, je vais regarder cela et utiliser ton tool pour lire le .dbg.
Je ne savais pas qu'il fallait réserver l'espace d'une variable lors d'un call API avec une variable en référence, c'est probablement. Le problème est intermittent aussi dans ce cas buck?
Hors ligne
en fait, pour les appel API, il faut pré-allouer les chaines/blob lorsque l'API doit les modifier, et l'espace à réserver dépend de la fonction, il vaut mieux consulter la doc MSDN à ce sujet...
Hors ligne
Bonjour,
La réponse est oui, ça provoque des crashs intermittents.
Hors ligne