Bonjour,
Lorsque j'arrive au point d'arret en Débug, j'aimerais savoir quelle fonction utiliser pour savoir quelle methode appelle celle dans laquelle je suis, et ainsi de suite....
Si quelqu'un peut m'aider...
Merci bp
Cédric
Bonjour,
Lorsque j'arrive au point d'arret en Débug, j'aimerais savoir quelle fonction utiliser pour savoir quelle methode appelle celle dans laquelle je suis, et ainsi de suite....
Si quelqu'un peut m'aider...
Merci bp
Cédric
Tu peux situer un peu plus le contexte de ta question car si on interprète au premier degré ta question, on se dit que pour trouver l'appelant de l'endroit de ton point d'arrêt, il suffit juste de mettre un point d'arrêt en amont de ton code (genre au début de ton programme)...
J'ai peut être une réponse à ton besoin : lorsque tu es en debug, tu as un onglet nommé "Call stack" qui représente l'empilage des données dans ta pile durant l'exécution de ton programme.
Parmi ces données, tu as notamment l'appel aux fonctions qui s'empilent.
Par exemple, si tu es dans une fonction testDeleteBiblio appelée depuis un Main, tu auras la trace de pile suivante :
ConsoleApplication1.exe!ConsoleApplication1.Program.testDeleteBiblio() Line 28 C#
ConsoleApplication1.exe!ConsoleApplication1.Program.Main(string[] args = {Dimensions:[0]}) Line 20 C#
Merci pour ta réponse
C'est à peu pres ca mais il me manque des "appels". En fait, je demande ça car on ne sait pas forcément facilement d'où est appelée une méthode.
J'ai fait le test suivant :
J'ai une Form1 avec un Bouton. Quand je clique dessus ca m'ouvre une Form2. Celle ci contient un bouton qui appelle une méthode Test (de Form2). J'ai mis le point d'arret dans Test et voici ce que m'indique la "pile des appels" :
Je ne vois pas indiqué que Form2 est appelée par le clique sur le bouton1 de Form1....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 WindowsFormsApplication1.exe!WindowsFormsApplication1.Form2.test() Ligne 24 C# WindowsFormsApplication1.exe!WindowsFormsApplication1.Form2.button1_Click(object sender = {Text = "button1"}, System.EventArgs e = {X = 46 Y = 13 Button = Left}) Ligne 21 + 0x7 octets C# [Code externe] WindowsFormsApplication1.exe!WindowsFormsApplication1.Program.Main() Ligne 18 + 0x1a octets C# [Code externe]
Mais dans l'idée c'est bien ça que je veux
Cedric
De quelle manière ouvre-tu ton nouveau formulaire?
Donne le code de ton event! Et je te dirais ton avenir... lol
Cela m'a tout l'air d'un appel javascript, d'où la présence d'un [code externe] non géré par Visual Studio pour le tracage de la pile.
VS doit uniquement gérer les traces de la piles estampillés Composant .NET, un appel javascript ne doit pas en faire partie...
j'ai fait au plus simple :
j'ai créé un nouveau projet, il y a donc Form1 par défaut, sur cette Form1 j'ai ajouté un Bouton1
j'ai donc :
J'ai ajouté un Formulaire Form2, dans lequel j'ai placé un Bouton1, qui appelle la méthode Test, j'ai donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 oForm2 = new Form2(); oForm2.Show(); } } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 namespace WindowsFormsApplication1 { public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { this.test(); } private void test() { } } }
Partager