Sisällys

# Basic-ohjelman vianjäljitys

## Keskeytyskohdat ja suoritus askel kerrallaan

Basic-ohjelman jokainen rivi voidaan tarkistaa virheiden osalta suorittamalla ohjelma askel kerrallaan. Virheet on helppo jäljittää, koska tulos on välittömästi nähtävissä jokaisen rivin jälkeen. Keskeytyskohtapalstan osoitin muokkaimen vasemmassa reunassa osoittaa suoritettavaa riviä. Keskeytyskohta voidaan myös asettaa, kun halutaan pakottaa ohjelman keskeytys tietyssä vaiheessa.

Kaksoisnapsauttamalla keskeytyskohtapalstaa muokkainikkunan vasemmalla sivulla saadaan vastaavan rivin keskeytyskohta käyttöön tai pois käytöstä. Kun ajettava ohjelma saavuttaa keskeytyskohdan, sen suoritus keskeytyy.

Askel kerrallaan -suoritus Astu sisään -kuvaketta käyttäen johtaa siihen, että ohjelman proseduurit ja funktiotkin esitetään rivi kerrallaan.

Proseduuriaskeleittain suorittaminen käyttäen Astu yli -kuvaketta johtaa siihen, että ohjelman proseduurit ja funktiot esitetään yhtenä askeleena.

### Keskeytyskohdan ominaisuudet

Keskeytyskohdan ominaisuuksiin pääsee sen kohdevalikon kautta napsauttamalla hiiren oikealla painikkeella keskeytyskohtaa keskeytyskohtapalstalla.

Keskeytyskohta voidaan aktivoida tai deaktivoida valitsemalla Aktiivinen kohdevalikosta. Kun keskeytyskohta ei ole aktiivinen, se ei keskeytä ohjelman suoritusta.

Valitse Ominaisuudet keskeytyskohdan kohdevalikosta tai valitse Keskeytyskohdat keskeytyskohtapalstan kohdevalikosta saadaksesi esille Keskeytyskohtien hallinta -valintaikkunan, jossa voi määrittää muita keskeytyskohta-asetuksia.

Luettelossa näkyy kaikki lähdekoodin keskeytyskohdat rivinumeroineen. Valittu keskeytyskohta voidaan aktivoida tai deaktivoida rastittamalla tai tyhjentämällä Aktiivinen-ruutu.

Kertojen #-kentässä määritetään, kuinka monta kertaa keskeytyskohta ohitetaan, ennen kuin ohjelma keskeytetään. Jos syötetään 0 (oletusasetus), ohjelma keskeytetään joka kerta, kun tämä keskeytyskohta tavataan.

Napsauttamalla Poista poistetaan keskeytyskohta ohjelmasta.

## Muuttujien arvojen tarkkailu

Muuttujien arvoja voidaan valvoa lisäämällä muuttuja Seuranta-ikkunaan. Muuttujan lisääminen seurantaluetteloon tehdään niin, että, muuttujan nimi kirjoitetaan Seuranta-tekstikenttään ja painetaan Enteriä.

Muuttujien arvot ovat näkyvissä vain, jos muuttuja on näkyvyysalueellaan. Muuttujille, joilla ei ole voimassa olevaa määrittelyä lähdekoodin seurantahetkisessä sijainnissa näytetään ("Out of Scope") arvon sijasta.

Myös taulukoita voi lisätä Seuranta-ikkunaan. Jos syötetään taulukkomuuttujan nimi ilman indeksinumeroa Seuranta-tekstikenttään, koko taulukon sisältö esitetään.

Jos hiirtä pidetään ennalta määritellyn muuttujan päällä muokkaimessa ajon aikana, muuttujan arvo näkyy ponnahdusruudussa.

## Kutsupino-ikkuna

Kutsupinon ikkuna antaa yleiskuvan kutsujen hierarkiasta proseduureissa ja funktiossa. On määrättävissä, mitkä proseduurit ja funktiot kutsuvat mitäkin muita proseduureja ja funktioita lähdekoodin nykyisessä pisteessä.

## Ajonaikaiset virheet

1 Tapahtui poikkeus

2 Määrittelemätön syntaksivirhe

3 Return ilman Gosub-komentoa

4 Virheellinen syöte, yritä uudestaan

5 Virheellinen proseduurikutsu

6 Ylivuoto

7 Muisti ei riitä

8 Taulukon ulottuvuudet on jo määritetty

9 Järjestysnumero määritetyn alueen ulkopuolella

10 Kaksinkertainen määrittely

11 Jako nollalla

12 Muuttujaa ei ole määritetty

13 Tietotyypit eivät täsmää

14 Virheellinen parametri

18 Käyttäjä keskeytti toiminnon

20 Jatka ilman virheitä

28 Ei tarpeeksi pinomuistia

35 Aliproseduuria tai funktiota ei ole määritetty

48 Virhe ladattaessa DLL-tiedostoa

49 Väärä DLL-kutsumuoto

51 Sisäinen virhe $(ARG1)

52 Virheellinen tiedoston nimi tai numero

53 Tiedostoa ei löydy

54 Virheellinen tiedostotila

55 Tiedosto on jo avoinna

57 Laitteen I/O-virhe

58 Tiedosto on jo olemassa

59 Virheellinen tietuepituus

61 Levyke tai kiintolevy täynnä

62 Lukumääritys ylittää tiedoston lopun EOF-merkinnän

63 Virheellinen tietuenumero

67 Liian monta tiedostoa

68 Laite ei ole käytettävissä

70 Käyttö kielletty

71 Levy ei ole valmiina

73 Ei käytössä

74 Uudelleennimeäminen eri levyille ei onnistu

75 Polun/tiedoston käsittelyvirhe

76 Polkua ei löydy

91 Objektimuuttujaa ei ole määritetty

93 Virheellinen merkkijonolauseke

94 Nollan käyttö ei ole sallittua

250 DDE-virhe

280 Odotetaan vastausta DDE-yhteyteen

281 DDE-kanavia ei ole käytettävissä

282 Mikään sovellus ei vastannut DDE-yhteyden muodostuskutsuun

283 Liian moni sovellus vastasi DDE-yhteyden muodostuskutsuun

284 DDE-kanava lukittu

285 Ulkoinen sovellus ei voi suorittaa DDE-toimintoa

286 Aikakatkaisu odotettaessa DDE-vastausta

287 käyttäjä painoi ESC-näppäintä DDE-toiminnon aikana

288 Ulkoinen sovellus on varattu

289 DDE-toiminto ilman tietoja

290 Tiedot ovat väärässä muodossa

291 Ulkoinen sovellus on lopetettu

292 DDE-yhteys on keskeytetty tai yhteyttä on muokattu

293 "DDE-metodia kutsuttu ilman avoimia kanavia

294 Virheellinen DDE-linkin muoto

295 DDE-sanoma on kadonnut

296 Liitetty linkki jo suoritettu

297 Linkkitilaa ei voi asettaa virheellisen linkkiaiheen vuoksi

298 DDE vaatii tiedoston DDEML.DLL

323 Moduulia ei voi ladata: virheellinen muoto

341 Virheellinen objektin järjestysnumero

366 Objekti ei ole käytettävissä

380 Virheellinen ominaisuuden arvo

382 This property is read-only

394 Tämä ominaisuus on vain kirjoitusta varten

420 Virheellinen objektiviite

423 Ominaisuutta tai metodia ei löytynyt

424 Objekti vaaditaan

425 Virheellinen objektin käyttö

430 Tämä objekti ei tue OLE-automaatiota

438 Objekti ei tue tätä ominaisuutta tai menetelmää

440 OLE-automaatiovirhe

445 Annettu objekti ei tue tätä toimintoa

446 Annettu objekti ei tue nimettyjä argumentteja

447 Annettu objekti ei tue nykyistä lokaaliasetusta

448 Nimettyä argumenttia ei löydy

449 Argumentti ei ole valinnainen

450 Virheellinen määrä argumentteja

451 Objekti ei ole luettelo

452 Virheellinen järjestysluku

453 Määritettyä DLL-funktiota ei löytynyt

460 Virheellinen leikepöydän muoto

951 Odottamaton symboli:

952 Odotettiin:

953 Odotettiin symbolia

954 Odotettiin muuttujaa

955 Odotettiin selitettä (rivitunnusta)

956 Arvoa ei voi käyttää

957 Muuttuja on jo määritetty

958 Aliproseduuri tai funktio on ennestään määritetty

959 Selite (rivitunnus) on ennestään määritetty

960 Muuttujaa ei löytynyt

961 Proseduuria ei löytynyt

962 Proseduuria ei löytynyt

963 Selitettä (rivitunnusta) ei ole määritetty

964 Tuntematon tietotyyppi

965 Odotettiin poistumista kohteesta

966 Lauselohko yhä avoinna: puuttuu

967 Sulkeet eivät vastaa toisiaan

968 Symboli on jo määritetty toisella tavalla

969 Parametrit eivät vastaa proseduuria

970 Virheellinen merkki luvussa

971 Taulukon on oltava dimensioitu

972 Else tai Endif ilman If-ehtoa

973 ei sallittu proseduurissa

974 ei sallittu proseduurin ulkopuolella

975 Dimensiomääritykset eivät vastaa toisiaan

976 Tuntematon asetus:

977 Vakio määritetty uudelleen

978 Ohjelma on liian suuri

979 Merkkijonot tai taulukot eivät ole sallittuja

1000 Objektilla ei ole tätä ominaisuutta

1001 Objektilla ei ole tätä menetelmää

1002 Vaadittu argumentti puuttuu

1003 Virheellinen määrä argumentteja

1004 Virhe suoritettaessa metodia

1005 Ominaisuuden asettaminen ei onnistu

1006 Ominaisuuden määrittäminen ei onnistu