Call Stack

Författare: Lewis Jackson
Skapelsedatum: 8 Maj 2021
Uppdatera Datum: 25 Juni 2024
Anonim
The Call Stack
Video: The Call Stack

Innehåll

Definition - Vad betyder Call Stack?

En samtalstack, i C #, är listan med namn på metoder som anropas vid körning från början av ett program tills exekveringen av det aktuella uttalandet.


En samtalstack är huvudsakligen avsedd att hålla reda på den punkt till vilken varje aktiv subroutine ska returnera kontrollen när den är klar exekverad. Samtalstack fungerar som ett verktyg för att felsöka en applikation när metoden som ska spåras kan kallas i mer än en nackdel. Detta är ett bättre alternativ än att lägga till spårningskod till alla metoder som kallar den givna metoden. Närhelst ett undantag kastas var som helst i användarkoden, kommer Common Language Runtime (CLR) att lossa samtalstaket och söka efter fångstblocket för att bestämma den specifika undantagstypen. Om det inte finns någon lämplig hanterare avslutar CLR ansökan. Anropsstack används därför för att berätta exekveringspekaren var man ska gå nästa.

En introduktion till Microsoft Azure och Microsoft Cloud | I hela denna guide kommer du att lära dig vad cloud computing handlar om och hur Microsoft Azure kan hjälpa dig att migrera och driva ditt företag från molnet.

Techopedia förklarar Call Stack

Samlingsstapel är organiserad som "stack", en datastruktur i minnet för att lagra objekt på ett sista-in-först-ut-sätt, så att den som ringer subrutinen skjuter returadressen på bunten och den anropade subroutinen, efter avslutad visar returadressen från samtalstacken för att överföra kontrollen till den adressen.


I C # börjar varje applikation med en "huvud" -metod, som i sin tur kallar andra metoder. För varje samtal till en metod läggs metoden till toppen av bunten och tas bort från bunten när den återkommer till den som ringer. Dessutom bestäms omfånget för en variabel som deklareras i ett block från det att dess värde skjuts på bunten (som en del av samtalstacken) tills genomförandet lämnar blocket när variabeln och samtalsbunken släpps från bunten. Således upprätthåller bunten både lokala variabler (värdetyper) och samtalsbunten (stapelramar), vars storlek indikerar komplexiteten hos ett program.

Denna definition har skrivits i C #