Miten kannattaa debugata seuraavaa: Minulla on iso C#-projekti Visual Studiossa. Yritin etsiä virhettä asettamalla breakpointin tiettyyn kohtaan ja katsomalla mitä tapahtuu. Ohjelma ei kuitenkaan pysähtynyt kyseiseen kohtaan. Ilmeisestikin siis oletin väärin, että ohjelmarivi suoritetaan, mutta virhe onkin aiemmin. Saako esimerkiksi ohjelman stack tracen tulostettua vaikkapa uuteen tiedostoon, jotta näen, mitä funktioita kutsutaan ohjelman suorituksen aikana? En löytänyt ainakaan kohdasta Debug/Windows mitään ikkunaa, johon stack trace tulostuisi.
Lähtisin liikkeelle Main-funktiosta ja etenisin järjestyksessä funktiosta toiseen. Breakpointtien sijasta voi käyttää tulosteita:
Console.WriteLine("Täällä ollaan!"); Environment.Exit(0);
Jos jokin yksittäinen kohta koodissa askarruttaa, koodin ympärille voi rakentaa oman debuggausmenetelmän. Esimerkiksi voit tulostaa, mitä muuttujat sisältävät kohdan A jälkeen ja mikä niiden sisältö on myöhemmin kohdan B jälkeen. Tulosteet voi toki ohjata myös tiedostoon.
Jos tämä on vielä ajankohtainen niin ...
Ajattelisin että virheitä on monenlaisia ja riippuu vähän millainen virhe on kyseessä että miten sitä kannattaisi lähteä metsästämään. Ja jotkin asiat riippuu myös projektityypistä ja kohdeympäristöstä.
Eli jos annat vähän lisää lähtötietoja, niin saattaisi pystyä antamaan tarkempia vinkkejä.
Ongelma ratkesi. Piti huomata, että toisessa tiedostossa kutsutaan oikein toista funktiota.
Joskus on vaan vaikea nähdä, miten eri tiedostoissa olevia koodeja hahmotetaan. Samoin jos on opetellut tietyn tavan tehdä ohjelmia ja pitää ylläpitää eri tavalla tehtyä ohjelmaa.