webForumDet fria alternativet

debug, få reda klass och funktionsnamn

.NET

1 svar · 155 visningar · startad av The_Hulk

Medlem sedan juni 20031 837 inlägg
Frågan#1

/r OBS, gäller C#

Jag vill göra det enklare att debugga min kod, så jag tänkte göra en liten kodsnutt som skriver ut vilken klass och funktion man är i.

Det bästa hade varit att göra detta till en funktion som skriver ut vilken klass och funktion som anropade denna debug-funktion. I C/C++ finns det väl något i stil med __
FILE samt __LINE.

Går inte det har jag inget emot att klistra in detta på alla ställe det ska skrivas ut.

Tack på förhand!

/r
Hittade detta exemplet:

Console.WriteLine("Method name: " + new
System.Diagnostics.StackTrace().GetFrame(0).GetMethod().Name);

Såg att det fanns metoder för att få ut filnamn och filrad, dock var filnamnet null och filraden 0.
Någon som vet varför det blev så?

System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace();

Console.WriteLine("File name: " + st.GetFrame(0).GetFileName());

Console.WriteLine("File Line: " + st.GetFrame(0).GetFileLineNumber().ToString());

Console.WriteLine("Method name: " + st.GetFrame(0).GetMethod().Name);

Sen märkte jag även att om man ska ha denna koden i en funktion man anropar för att debugga ska man ha GetFrame(1), annars får man information om debugg-funktionen.

Medlem sedan maj 20012 812 inlägg
#2

Såg att det fanns metoder för att få ut filnamn och filrad, dock var filnamnet null och filraden 0.
Någon som vet varför det blev så?

För att du skall få ut information om vilken rad man är på så måste .pdb filen deployas tillsammans med .dll filen, eftersom den innehåller sådan information.

Jag har gjort en liknande lösning och fick problem med att den alltid visade fel radnummer när jag hämtade information från stacken, om jag däremot hämtade stackinformationen från en exception så skrev den ut rätt radnummer. Har inte hittat någon lösning på varför jag fick/får fel radnummer när jag inte använder stackinformationen från ett excpetionobjekt.

- M

255 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)