Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Walsh
Salut,
C"est générallement dû à un appel récursif (une fonction qui s'appelle elle-même), plus ou moins évident dans certains cas. Ainsi,
On Error Goto Toto
...
x= 1.0 / 0.0
.... Toto: x= 1.0 / 0.0
Évidemment, ici, ce n'est pas vraiement récursif mais si au lieu de diviser par zéro je demandais un fonction, qui elle tombe sous la capture du "On Error", ce serait de la récursion (un peu cachée). Et la dite fonction pourrait tomber en erreur parce que sur un des PC, un dll est manquant, ou autre condition locale. Je ne dis pas que c'est cela qui se produit, c'est seulement une tentative d'illustration.
Alors, le plus "simple" est encore de lancer le code sur la machine problème (j'imagine que c'est possible), et de commencer du pas-à-pas. Il n'est pas requis que l'on passe individuellement sur toutes les instructions, lors de la première passe, on cherche à localiser le problème, donc, Shift-F8 ( continuer l'exécution jusqu'à la position du curseur ) et autres trucs, tel le "step over" du Debug peuvent être utiles.
Public Function Commence( )
Debug.Assert False ' le code arrête ici
FaisQuelquechose( )
EtEncoreQuelquechose( )
EtEncoreEncore( )
End Function
Ainsi, lors de la première passe, le code s'arrête là où indiqué. Je peux faire du Step Over " FaisQuelqueChose( ) " et si le curseur revient, ce n'est pas là qu'est le problème. Je peux alors continuer avec de Step Over. À un moment donné, j'obtiens l'erreur! Supposons qu'elle se produit alors que j'avais essayé EtEncoreQuelqueChose( ). Lors de la seconde passe, le code s'arrête, je place le curseur sur la ligne EtEncoreQuelqueChose( ) et effectue Shift-F8 (ou, alternativement, déménage mon "Debug.Assert False" sur la ligne précédante EtEncoreQuelqueChose( ) ) et là, je fais un Step Into (un Step Over me referait l'erreur sans apporter plus de précisions que je n'aurais alors déjà obtenue)... et je recommence mon approche de détection. Déverminage standard, quoi.
Espérant être utile, Vanderghast, Access MVP
"fred" wrote in message news:019001c3b385$a97a9070$ J'ai crée une petiti application access qui fonctionne très bein et lors de son installation sur un nouveau PC j'ai le message suivant :
espace pile insuffisant
Je ne voie pas d'où cela peux venir et ne trouve rien sur le sujet.
Merci de votre aide ! Fred
Salut,
C"est générallement dû à un appel récursif (une fonction qui
s'appelle elle-même), plus ou moins évident dans certains cas. Ainsi,
On Error Goto Toto
...
x= 1.0 / 0.0
....
Toto:
x= 1.0 / 0.0
Évidemment, ici, ce n'est pas vraiement récursif mais si au lieu de
diviser par zéro je demandais un fonction, qui elle tombe sous la capture du
"On Error", ce serait de la récursion (un peu cachée). Et la dite fonction
pourrait tomber en erreur parce que sur un des PC, un dll est manquant, ou
autre condition locale. Je ne dis pas que c'est cela qui se produit, c'est
seulement une tentative d'illustration.
Alors, le plus "simple" est encore de lancer le code sur la machine
problème (j'imagine que c'est possible), et de commencer du pas-à-pas. Il
n'est pas requis que l'on passe individuellement sur toutes les
instructions, lors de la première passe, on cherche à localiser le problème,
donc, Shift-F8 ( continuer l'exécution jusqu'à la position du curseur ) et
autres trucs, tel le "step over" du Debug peuvent être utiles.
Public Function Commence( )
Debug.Assert False ' le code arrête ici
FaisQuelquechose( )
EtEncoreQuelquechose( )
EtEncoreEncore( )
End Function
Ainsi, lors de la première passe, le code s'arrête là où indiqué. Je peux
faire du Step Over " FaisQuelqueChose( ) " et si le curseur revient, ce
n'est pas là qu'est le problème. Je peux alors continuer avec de Step Over.
À un moment donné, j'obtiens l'erreur! Supposons qu'elle se produit alors
que j'avais essayé EtEncoreQuelqueChose( ). Lors de la seconde passe, le
code s'arrête, je place le curseur sur la ligne EtEncoreQuelqueChose( ) et
effectue Shift-F8 (ou, alternativement, déménage mon "Debug.Assert False"
sur la ligne précédante EtEncoreQuelqueChose( ) ) et là, je fais un Step
Into (un Step Over me referait l'erreur sans apporter plus de précisions que
je n'aurais alors déjà obtenue)... et je recommence mon approche de
détection. Déverminage standard, quoi.
Espérant être utile,
Vanderghast, Access MVP
"fred" <fredericlambert@wanadoo.fr> wrote in message
news:019001c3b385$a97a9070$a401280a@phx.gbl...
J'ai crée une petiti application access qui fonctionne
très bein et lors de son installation sur un nouveau PC
j'ai le message suivant :
espace pile insuffisant
Je ne voie pas d'où cela peux venir et ne trouve rien sur
le sujet.
C"est générallement dû à un appel récursif (une fonction qui s'appelle elle-même), plus ou moins évident dans certains cas. Ainsi,
On Error Goto Toto
...
x= 1.0 / 0.0
.... Toto: x= 1.0 / 0.0
Évidemment, ici, ce n'est pas vraiement récursif mais si au lieu de diviser par zéro je demandais un fonction, qui elle tombe sous la capture du "On Error", ce serait de la récursion (un peu cachée). Et la dite fonction pourrait tomber en erreur parce que sur un des PC, un dll est manquant, ou autre condition locale. Je ne dis pas que c'est cela qui se produit, c'est seulement une tentative d'illustration.
Alors, le plus "simple" est encore de lancer le code sur la machine problème (j'imagine que c'est possible), et de commencer du pas-à-pas. Il n'est pas requis que l'on passe individuellement sur toutes les instructions, lors de la première passe, on cherche à localiser le problème, donc, Shift-F8 ( continuer l'exécution jusqu'à la position du curseur ) et autres trucs, tel le "step over" du Debug peuvent être utiles.
Public Function Commence( )
Debug.Assert False ' le code arrête ici
FaisQuelquechose( )
EtEncoreQuelquechose( )
EtEncoreEncore( )
End Function
Ainsi, lors de la première passe, le code s'arrête là où indiqué. Je peux faire du Step Over " FaisQuelqueChose( ) " et si le curseur revient, ce n'est pas là qu'est le problème. Je peux alors continuer avec de Step Over. À un moment donné, j'obtiens l'erreur! Supposons qu'elle se produit alors que j'avais essayé EtEncoreQuelqueChose( ). Lors de la seconde passe, le code s'arrête, je place le curseur sur la ligne EtEncoreQuelqueChose( ) et effectue Shift-F8 (ou, alternativement, déménage mon "Debug.Assert False" sur la ligne précédante EtEncoreQuelqueChose( ) ) et là, je fais un Step Into (un Step Over me referait l'erreur sans apporter plus de précisions que je n'aurais alors déjà obtenue)... et je recommence mon approche de détection. Déverminage standard, quoi.
Espérant être utile, Vanderghast, Access MVP
"fred" wrote in message news:019001c3b385$a97a9070$ J'ai crée une petiti application access qui fonctionne très bein et lors de son installation sur un nouveau PC j'ai le message suivant :
espace pile insuffisant
Je ne voie pas d'où cela peux venir et ne trouve rien sur le sujet.