Instruktionssteg
Ett instruktionssteg är en metod för att exekvera ett datorprogram ett steg i taget för att avgöra hur det fungerar. Detta kan vara för att avgöra om det korrekta programflödet följs i programmet under exekveringen eller för att se om variabler är inställda på sina korrekta värden efter att ett enda steg har slutförts.
Hårdvaruinstruktionssteg
På tidigare datorer kan en ratt på datorkonsolen ha aktiverat steg-för-steg exekveringsläge att väljas och exekveringen skulle sedan fortsätta genom att trycka på en "enkelstegs"- eller "enkelcykel"-knapp. Programstatusord / minne eller allmän registeravläsning kan sedan utföras genom att observera och notera konsollamporna.
Programvaruinstruktionssteg
På senare plattformar med flera användare var denna metod opraktisk och så enstegsexekvering måste utföras med hjälp av mjukvarutekniker.
Mjukvarutekniker
- Instrumentation - kräver att kod läggs till under kompilering eller montering för att uppnå satsstegning. Kod kan läggas till manuellt för att uppnå liknande resultat i tolkningsspråk som JavaScript .
- instruktionsuppsättningssimulering - kräver inga kodändringar för instruktions- eller satsstegning
I vissa mjukvaruprodukter som underlättar felsökning av högnivåspråk är det möjligt att köra en hel HLL-sats åt gången. Detta involverar ofta många maskininstruktioner och exekveringspauser efter den sista instruktionen i sekvensen, redo för nästa "instruktions"-steg. Detta kräver integration med kompileringsutdata för att bestämma omfattningen av varje påstående.
med fullständiga instruktionsuppsättningar kunde emellertid tillhandahålla instruktionsstegring med eller utan någon källa, eftersom de arbetar på maskinkodsnivå, valfritt tillhandahåller fullständig spårnings- och felsökningsinformation till vilken högre nivå som helst som var tillgänglig genom sådan integration. Dessutom kan de också valfritt tillåta att stega igenom varje monteringsinstruktion (maskin) som genereras av en HLL-sats.
Program sammansatta av flera "moduler" kompilerade från en blandning av kompilerade språk, och till och med instruktioner skapade "on-the-fly" i dynamiskt allokerat minne, kunde hanteras med denna teknik.
Exempel på program som ger instruktionssteget 'Programvara'
- SIMMON ett internt testsystem från IBM som gav instruktionsstegning
Se även