Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Υπολογιστών Γλώσσες

Λόγοι για Υπερχείλιση στοίβας

υπερχείλιση στοίβας είναι ένα σφάλμα εφαρμογής που εμφανίζεται όταν πάρα πολύ μνήμη διατίθεται στο run-time στοίβα κλήσεων της αίτησης . Στο λειτουργικό σύστημα , αυτή η στοίβα κλήσεων είναι κυριολεκτικά μια « στοίβα μνήμης " στο οποίο έχουν μεταβλητές προγραμματισμό και τη διαδικασία κλήσεων αποθηκεύονται για χρήση μέσα στο τρέχον πεδίο εφαρμογής της εκτέλεσης . Τα κύρια αίτια της υπερχείλισης στοίβας είναι άπειρη αναδρομή και στοίβα μεταβλητές που είναι πολύ μεγάλα . Μια τρίτη αιτία, αν και λιγότερο πιθανό , μπορεί να συμβεί λόγω της απώλειας του δείκτη στοίβας στη μνήμη. Άπειρη Αναδρομή
Η

άπειρες αναδρομή προκαλεί η στοίβα κλήσης να υπερχειλίσει στις περισσότερες γλώσσες προγραμματισμού . Όταν μια διαδικασία ή συνάρτηση καλεί μία άλλη διαδικασία ή συνάρτηση , η προηγούμενη πληροφορία σχετικά με την κλήση στοίβα διατηρείται και οι πληροφορίες από την νέα λειτουργία διατίθεται στην κορυφή της στοίβας . Όταν μια λειτουργία που καλεί τον εαυτό της αναδρομικά χωρίς ένα σαφές μέσα από την καταγγελία , η εφαρμογή θα διαθέσει περισσότερη μνήμη στη στοίβα συνεχώς μέχρι εκχωρείται περισσότερη μνήμη από τα διαθέσιμα στη στοίβα , με αποτέλεσμα την υπερχείλιση στοίβας .
Εικόνων Πολύ Μεγάλες μεταβλητές Stack
Η

μεταβλητές που δηλώνονται στη στοίβα περιλαμβάνει μεταβλητές εισόδου σε μία διαδικασία , η τιμή επιστροφής για τη διαδικασία και τυχόν μεταβλητές μελών που χρησιμοποιούνται για τους υπολογισμούς . Αυτό μπορεί να οδηγήσει σε υπερχείλιση εάν το συνολικό μέγεθος της διαδικασίας πρόσκλησης και των μεταβλητών του είναι μεγαλύτερη από τη διαθέσιμη μνήμη στοίβας .

Η Stack Pointer Απώλεια
Η

Stack η απώλεια δείκτης εμφανίζεται όταν μνήμης στη στοίβα καταστραφεί . Αυτό μπορεί να συμβεί με την προσπάθεια λειτουργίες ή την πρόσβαση σε δεδομένα σε μνήμη που προηγουμένως είχαν εκκαθαριστεί, για παράδειγμα. Αν συμβεί αυτό , μια μοναδική μορφή της αναδρομής συμβαίνει, με αποτέλεσμα την εφαρμογή προσπαθεί να ανακαλύψει τη βάση πληροφοριών ενός συγκεκριμένου κομματιού των δεδομένων . Επειδή οι ​​πληροφορίες που τεχνικά δεν υπάρχει , η συμπεριφορά της αίτησης γίνεται απροσδιόριστο , και μια ατελείωτη ροή των κλήσεων λειτουργίας καταστεί δυνατό. Ο περιορισμός αυτός εμφανίζεται κυρίως σε χαμηλά επίπεδα , object-oriented γλώσσες , όπως η C + + .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα