sithiar
Messages postés3Date d'inscriptionmardi 10 juin 2008StatutMembreDernière intervention24 novembre 2008
-
23 juil. 2008 à 16:03
sithiar
Messages postés3Date d'inscriptionmardi 10 juin 2008StatutMembreDernière intervention24 novembre 2008
-
23 juil. 2008 à 16:25
J'ai actuellement un point d'arrêt de VS 2005 qui fait planter l'application. Je m'explique.
Dans une formulaire, le frm_load modifie une donnée et réinitlise le bindingcontext.
Une fois le binding context en place, je lance une méthode qui va changer cette information de visibilité de groupbox...
l'application marche très bien en mode classique, excepté que cette dernière partie (visibilité des groupbox) ne donne rien, comme si la binding.current ne renvoyait pas des bonnes données.
Afin de vérifier ces données, j'ai posé un point d'arrêt :
this.newReceptionScreenDataLayerBindingSource.DataSource = this.currentReception;
<strike>//this.newReceptionScreenDataLayerBindingSource.ResetBindings(false);</strike>
<strike>//newReceptionScreenDataLayerBindingSource.ResetCurrentItem();</strike>
[BREAKPOINT]ManageGroupBoxRawMaterial();
Et juste le fait de poser le breakpoint fait que l'application s'arrête purement et simplement.
Un eval de newReceptionScreenDataLayerBindingSource.current au moment du breakpoint ne me permet que d'afficher le début des données de l'objet, ensuite les données sont soient ok, soient à :
Function evaluation was aborted
Cannot evaluate expression because debugging information has been optimized away
sithiar
Messages postés3Date d'inscriptionmardi 10 juin 2008StatutMembreDernière intervention24 novembre 2008 23 juil. 2008 à 16:25
solution trouvée :
Le (BindingSource.DataSource = something) appelle des méthodes aynchrone managé, effectuant des appels sur une autre classe (dont something est une collection).
Or j'avais un autre breakpoint sur cette classe...
Automatiquement après un certain temps d'inactivité, la méthode asynchrone appelée ne s'étant pas terminée (à cause donc du second breakpoint), le thread est automatiquement killé par la CLR... sauf que ce thread est celui de mon application principale.
Donc si vous avez un jour ce message d'erreur : Cannot evaluate expression because debugging information has been optimized away, vérifiez que dans le configuration du projet, le "optimize code" est décoché, puis désactiver touts les breakpoint inutiles dans votre appli ;-)
(il existe d'autres subtilité si vous êtes en ASP.NET, je vous conseille la KB : http://support.microsoft.com/kb/312629/EN-US/ )