Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Computer Programspråk >> Content

    Hur man upptäcker Stack Overflow

    Dator programmeringsspråk förlita sig på ett samtal stack datastruktur --- vissa gör sin närvaro explicit till programmeraren , medan alla förlitar sig på en stapel för programhopp som måste återvända till den plats där det ursprungliga programmet slutade efter ha utförts någon form av subrutinen . Innan överföring av kontrollen till användarkod , sätter ett program den maximala storleken för samtalet stacken , bland andra preparat . Ibland ett program avbryter på grund av en segmentering fel , vilket kan orsakas av en mängd faktorer . Du kan lätt upptäcka är en stack overflow är roten till problemet genom att använda en debugger . Saker du behöver
    Källkod för programmet
    Compiler för programmet
    Source - nivå debugger med stöd för att visa en
    backtrace
    Visa fler instruktioner
    1

    kompilera program som ger segmentering fel så att alla Avlusningssymbolerna är länkade till den . Till exempel för en C + + -program på alla operativsystem med GNU svit av verktyg , utföra :

    " g+ + - g program.C - o -programmet "

    där " - g " alternativet instruerar kompilatorn att inkludera avlusningssymboler .
    2

    Exekvera programmet tills den stannar på grund av en segmentering fel . För exempel , kör :

    " programmet " Addera 3

    Åkalla debugger på program direkt efter segmentering fel. För exempel , kör :

    " gdb program "
    4

    Visa ett backtrace använder debugger . Alla source - nivå debuggers har funktioner för att visa den kedja av kapslade funktionen anrop vid tiden för programmet kraschar . För vår " gdb " exempel anger insidan " gdb : "

    " backtrace "
    5

    Undersök backtrace efter tecken på en oändlig rekursion . Är en enda funktion namn upprepas fler gånger än nödvändigt innan kraschen ? Är några funktioner ringer varandra ( t.ex. ömsesidig rekursion ) alltför många gånger innan kraschen ? Om svaret på någon fråga är " ja ", programmet stoppas på grund av en stack overflow . Den mest troliga orsaken stackspill i högnivåspråk är felaktigt kodade basfallen .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man programmerar med Prolog
    ·Hur Unbind en händelsehanterare i jQuery
    ·Hur man kör PowerShell-skript från kommandoraden
    ·Vad är en datamängd i kodning
    ·Hur man skriver pseudokod för ett Calculator
    ·Hur till Redigera data i ett DataSet Object
    ·Hur man skriva en rotdomän till Default.aspx Med ASP.N…
    ·Hur man sparar Ändringar WPF i Dataset
    ·Hur man gör en utveckling för Pocket PC Med Language …
    ·MATLAB Utgång String
    Utvalda artiklarna
    ·Hur man gör en MIDI Loop i Java
    ·Hur man uppskatta antal buggar i kod
    ·Hur man kör en Java applet från HTML
    ·Hur man skriver en enkel SAS Program
    ·Orsaker till Stack Overflow
    ·Hur du tar bort knappar i GridView
    ·Debugging Funktioner
    ·Hur du ändrar bakgrund JFrame i Swing
    ·Hur konvertera en alfabetet till Caps i CPP
    ·Hur man gör Kollapsande Listor Utan Java
    Copyright © Dator Kunskap http://www.dator.xyz