Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> Computer Programming Languages >> Content
Hoe te stackoverloop Detect
Computer programmeertalen rekenen op een call stack datastructuur --- sommige zijn aanwezigheid expliciet aan de programmeur , terwijl alle vertrouwen op een stapel voor programma sprongen die moeten terugkeren naar de plaats waar het oorspronkelijke programma verlaten uit na een soort van subroutine te hebben uitgevoerd . Voor de overdracht van de controle aan de gebruiker code , een programma stelt de maximale grootte voor de call-stack , onder andere preparaten . Soms is een programma afbreekt door een segmentatie fout , die kan worden veroorzaakt door een aantal factoren . U kunt eenvoudig te detecteren is een stack overflow is aan de wortel van het probleem met behulp van een debugger . Wat je
Broncode Noodzaak voor het programma
Compiler voor het programma
Source - level debugger met ondersteuning voor het weergeven van een backtrace
Toon Meer Aanwijzingen
1

Hercompileer het programma , dat is het geven van de segmentatie fout , zodat alle debugging symbolen worden gekoppeld in. Bijvoorbeeld , voor een C + + -programma op elk besturingssysteem met de GNU suite van tools , voeren : optie

" g+ + - g program.c - o programma "

waar de " - g" instrueert de compiler om debugging symbolen bevatten . kopen van 2

Voer het programma totdat het stopt vanwege een segmentation fault . Voor het voorbeeld uitvoeren :

" programma "
3


Roep de debugger op het programma direct na de segmentation fault . Voor het voorbeeld uitvoeren :

" gdb programma "
4

Geef een backtrace behulp van de debugger . All source - level debuggers hebben de mogelijkheid van het weergeven van de reeks van geneste functie aanroepen ten tijde van het programma crash . Voor onze " gdb " Voer bijvoorbeeld binnen " gdb : "

" backtrace "
5


Onderzoek de backtrace op tekenen van een oneindige herhaling . Is een enkele functie naam herhaald vaker dan nodig is voor de crash ? Zijn een paar functies bellen elkaar ( bijvoorbeeld wederzijdse recursie ) te vaak voor de crash ? Als het antwoord op beide vragen is " ja , " het programma gestopt vanwege een stack overflow . De meest waarschijnlijke oorzaak van de stack overflows in high - level talen zijn onjuist gecodeerd base gevallen .

Previous: Next:
  Computer Programming Languages
·Bepalen het aantal knoppen in …
·Hoe maak je een voortgangsbalk…
·Hoe te Code Data Transfer Met …
·Definieer Infinite Loop 
·Hoe maak je een twee-complemen…
·Hoe maak je een DropDownList i…
·Hoe de DME gebruiken in SAP 
·Het Karakter Limiet van invoer…
·Voordelen & Nadelen van hoog -…
  Related Articles
Hoe maak je een Combo Box Maak in Visual…
Hoe maak je een Check Box Maak in Visual…
Hoe maak je een tekstvak maken in Visual…
Hoe maak je een optie Box in Visual Basi…
Hoe maak je een schijf keuzelijst in Vis…
Hoe kan ik een keuzelijst maken in Visua…
Hoe kan ik een Picture Box Maak in Visua…
Hoe een bestand keuzelijst Maak in Visua…
Hoe kan ik een afbeelding Box Maak in Vi…
  Programmering Articles
·Hoe je Root-toegang inschakelen om MySQL…
·Hoe Set Up Late Binding in VB 6.0 
·Javascript Scrollbar Tutorial 
·Hoe te SVN Geschiedenis verwijderen in E…
·Hoe de Time Bewerken in het register met…
·VBA Functie Procedure 
·Hoe maak je een object verplaatsen Met C…
·Hoe te Numbers Van Laag naar hoog behulp…
·Hoe te RGB's Extract in VB6 
Copyright © Computer Kennis http://www.nldit.com