Bonjour,
on me demande de débugger une DLL écrite en VB6 et je ne suis pas très
familier avec ce langage. J'aurais besoin d'un peu d'aide.
Voilà mon problème:
j'ai cette ligne de code VB:
If objApplication(strPrefixeConnexion & "_DefinitionBaseChargee") Then....
Et objApplication est une référence à l'objet Application d'une
application ASP.
Apparement, une fois compilée, on obtient la pile d'appel suivant:
Donc, si je comprends bien:
à la ligne 5, le code essaie d'accéder à la valeur de la variable.
à la ligne 4, il pose un verrou sur qq chose.
puis, il entre dans une section critique et reste en attente de la
variable détenu par un autre thread.
Voilà ma question, le verrou posé à la ligne 4 est un verrou sur l'objet
Application ou seulement sur la valeur "DefinitionBaseChargee" de cet objet.
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
David Rousset
Bonjour,
Je ne suis pas bien sûr que vous allez dans la bonne direction.
Pourriez-vous nous en dire davantage sur ce que vous appelez "débugger une DLL" ? Cette dernière crash ?
Le plus simple dans ces cas là est de la recompilée avec les symboles de Debug pour avoir un peu plus d'information et de s'attacher avec un débuggeur au process qui va charger la DLL.
Par ailleurs, où se trouve cette DLL ? Dans COM+ ou non ?
Bye,
-- David Rousset Microsoft France -------------------- Merci de bien vouloir répondre à ce message dans le newsgroup où il a été posté. Je le consulte régulièrement.
"Trinh Huu Nhuan" wrote in message news:bmes3n$4mk$
Bonjour, on me demande de débugger une DLL écrite en VB6 et je ne suis pas très familier avec ce langage. J'aurais besoin d'un peu d'aide. Voilà mon problème: j'ai cette ligne de code VB:
If objApplication(strPrefixeConnexion & "_DefinitionBaseChargee") Then....
Et objApplication est une référence à l'objet Application d'une application ASP.
Apparement, une fois compilée, on obtient la pile d'appel suivant:
Donc, si je comprends bien: à la ligne 5, le code essaie d'accéder à la valeur de la variable. à la ligne 4, il pose un verrou sur qq chose. puis, il entre dans une section critique et reste en attente de la variable détenu par un autre thread.
Voilà ma question, le verrou posé à la ligne 4 est un verrou sur l'objet Application ou seulement sur la valeur "DefinitionBaseChargee" de cet
objet.
Si vous avez une idée, n'hésitez pas.
Merci d'avance et cordialement
Trinh Huu Nhuan
Bonjour,
Je ne suis pas bien sûr que vous allez dans la bonne direction.
Pourriez-vous nous en dire davantage sur ce que vous appelez "débugger
une DLL" ? Cette dernière crash ?
Le plus simple dans ces cas là est de la recompilée avec les symboles de
Debug pour avoir un peu plus d'information et de s'attacher avec un
débuggeur au process qui va charger la DLL.
Par ailleurs, où se trouve cette DLL ? Dans COM+ ou non ?
Bye,
--
David Rousset
Microsoft France
--------------------
Merci de bien vouloir répondre à ce message dans le newsgroup où il a été
posté. Je le consulte régulièrement.
"Trinh Huu Nhuan" <huu-nhuan.trinh@wanadoo.fr> wrote in message
news:bmes3n$4mk$1@news-reader1.wanadoo.fr...
Bonjour,
on me demande de débugger une DLL écrite en VB6 et je ne suis pas très
familier avec ce langage. J'aurais besoin d'un peu d'aide.
Voilà mon problème:
j'ai cette ligne de code VB:
If objApplication(strPrefixeConnexion & "_DefinitionBaseChargee") Then....
Et objApplication est une référence à l'objet Application d'une
application ASP.
Apparement, une fois compilée, on obtient la pile d'appel suivant:
Donc, si je comprends bien:
à la ligne 5, le code essaie d'accéder à la valeur de la variable.
à la ligne 4, il pose un verrou sur qq chose.
puis, il entre dans une section critique et reste en attente de la
variable détenu par un autre thread.
Voilà ma question, le verrou posé à la ligne 4 est un verrou sur l'objet
Application ou seulement sur la valeur "DefinitionBaseChargee" de cet
Je ne suis pas bien sûr que vous allez dans la bonne direction.
Pourriez-vous nous en dire davantage sur ce que vous appelez "débugger une DLL" ? Cette dernière crash ?
Le plus simple dans ces cas là est de la recompilée avec les symboles de Debug pour avoir un peu plus d'information et de s'attacher avec un débuggeur au process qui va charger la DLL.
Par ailleurs, où se trouve cette DLL ? Dans COM+ ou non ?
Bye,
-- David Rousset Microsoft France -------------------- Merci de bien vouloir répondre à ce message dans le newsgroup où il a été posté. Je le consulte régulièrement.
"Trinh Huu Nhuan" wrote in message news:bmes3n$4mk$
Bonjour, on me demande de débugger une DLL écrite en VB6 et je ne suis pas très familier avec ce langage. J'aurais besoin d'un peu d'aide. Voilà mon problème: j'ai cette ligne de code VB:
If objApplication(strPrefixeConnexion & "_DefinitionBaseChargee") Then....
Et objApplication est une référence à l'objet Application d'une application ASP.
Apparement, une fois compilée, on obtient la pile d'appel suivant:
Donc, si je comprends bien: à la ligne 5, le code essaie d'accéder à la valeur de la variable. à la ligne 4, il pose un verrou sur qq chose. puis, il entre dans une section critique et reste en attente de la variable détenu par un autre thread.
Voilà ma question, le verrou posé à la ligne 4 est un verrou sur l'objet Application ou seulement sur la valeur "DefinitionBaseChargee" de cet
objet.
Si vous avez une idée, n'hésitez pas.
Merci d'avance et cordialement
Trinh Huu Nhuan
Trinh Huu Nhuan
David Rousset wrote:
Bonjour,
Bonjour et merci pour la réponse
Je ne suis pas bien sûr que vous allez dans la bonne direction.
Pourriez-vous nous en dire davantage sur ce que vous appelez "débugger une DLL" ? Cette dernière crash ?
Euh non.... Il faut savoir que je n'ai pas accès au serveur où est installée la DLL. Si je crois que me décrit la personne chargée de la gestion du serveur, périodiquement, le processus inetinfo.exe se met à gonfler en taille mémoire et au delà d'une certaine taille, l'application web ne répond plus et il est obligé de redémarrer le serveur (je sais, c'est violent!!! :) ).
Le plus simple dans ces cas là est de la recompilée avec les symboles de Debug pour avoir un peu plus d'information et de s'attacher avec un débuggeur au process qui va charger la DLL.
Outre le problème d'accès au serveur, nous n'avons jamais reussi à reproduire ce comportement en développement. Il ne se reproduit qu'en exploitation. Apparement, il y a un deadlock entre 2 threads et la file d'attente qui gonfle finit par tout faire exploser.
Par ailleurs, où se trouve cette DLL ? Dans COM+ ou non ?
Plutôt dans MTS. C'est un serveur NT4 SP6a.
Cordialement
Trinh Huu Nhuan
David Rousset wrote:
Bonjour,
Bonjour et merci pour la réponse
Je ne suis pas bien sûr que vous allez dans la bonne direction.
Pourriez-vous nous en dire davantage sur ce que vous appelez "débugger
une DLL" ? Cette dernière crash ?
Euh non.... Il faut savoir que je n'ai pas accès au serveur où est
installée la DLL. Si je crois que me décrit la personne chargée de la
gestion du serveur, périodiquement, le processus inetinfo.exe se met à
gonfler en taille mémoire et au delà d'une certaine taille,
l'application web ne répond plus et il est obligé de redémarrer le
serveur (je sais, c'est violent!!! :) ).
Le plus simple dans ces cas là est de la recompilée avec les symboles de
Debug pour avoir un peu plus d'information et de s'attacher avec un
débuggeur au process qui va charger la DLL.
Outre le problème d'accès au serveur, nous n'avons jamais reussi à
reproduire ce comportement en développement. Il ne se reproduit qu'en
exploitation. Apparement, il y a un deadlock entre 2 threads et la file
d'attente qui gonfle finit par tout faire exploser.
Par ailleurs, où se trouve cette DLL ? Dans COM+ ou non ?
Je ne suis pas bien sûr que vous allez dans la bonne direction.
Pourriez-vous nous en dire davantage sur ce que vous appelez "débugger une DLL" ? Cette dernière crash ?
Euh non.... Il faut savoir que je n'ai pas accès au serveur où est installée la DLL. Si je crois que me décrit la personne chargée de la gestion du serveur, périodiquement, le processus inetinfo.exe se met à gonfler en taille mémoire et au delà d'une certaine taille, l'application web ne répond plus et il est obligé de redémarrer le serveur (je sais, c'est violent!!! :) ).
Le plus simple dans ces cas là est de la recompilée avec les symboles de Debug pour avoir un peu plus d'information et de s'attacher avec un débuggeur au process qui va charger la DLL.
Outre le problème d'accès au serveur, nous n'avons jamais reussi à reproduire ce comportement en développement. Il ne se reproduit qu'en exploitation. Apparement, il y a un deadlock entre 2 threads et la file d'attente qui gonfle finit par tout faire exploser.
Par ailleurs, où se trouve cette DLL ? Dans COM+ ou non ?