Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
prekompilovať program , ktorý sa dáva na segmentation fault tak , aby všetky symboly ladenia sú prepojené do neho . Napríklad , pre + + programu C na operačnom systéme s GNU sadu nástrojov , spustiť :
" g+ + - g program.Čo - o programe "
kde voľba " - g " inštruuje kompilátor obsahovať symboly ladenia .
2
spustite program , až sa zastaví v dôsledku poruchy segmentácie . Pre príklad , spustiť :
" Program "
3
Spustite ladiaci program na programe hneď po Segmentation fault . Pre príklad , spustiť :
" gdb programu "
4
Zobrazenie backtrace pomocou ladiaceho programu . Všetky Debuggers zdroj úrovni majú schopnosť zobrazenia reťazec vnorených funkcií vyvolanie v dobe programe havárie . Pre naše " gdb " Napríklad , zadajte vnútri " gdb : "
" backtrace "
5
skúmať backtrace pre známky s nekonečnou rekurziu . Je jeden názov funkcie opakovať viackrát , než je nutné pred haváriou ? Niektoré funkcie , volanie medzi sebou ( napríklad vzájomná rekurzia ) príliš mnohokrát pred haváriou ? Je Ak je odpoveď na tieto otázky je " áno " , program sa zastavil z dôvodu pretečenia zásobníka . Najpravdepodobnejšou príčinou pretečeniu zásobníka v high - úrovni jazyky sú nesprávne kódované základné prípady .