TOP
SSV Software Systems Registrieren  Registrieren
Einloggen, um private Nachrichten zu lesen  Einloggen, um private Nachrichten zu lesen
Startseite FAQ Suchen Mitglieder Profil  Login 
SSV Support-Forum
Laufzeitfehler durch Stack Overflow ...

 
Neues Thema eröffnen   Neue Antwort erstellen    SSV-Forum Foren-Übersicht >>> PNP/5280
<<< Vorheriges Thema - Nächstes Thema >>>  
Beiträge der letzten Zeit anzeigen:   
Autor Nachricht
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1118

BeitragVerfasst am: 30.01.2008, 12:08    Titel: Laufzeitfehler durch Stack Overflow ... Antworten mit Zitat

Hallo Forum.

Das folgende C-basierte Code-Fragment:

Code:
int main (int argc, char* argv[])
{
   int nLen= sizeof (struct sockaddr), nRet, s1;
   long lRet;
   char szBuf[1024*16], szWday[16], szMon[16];
   struct sockaddr_in saServer;
   struct tm *tmPtr;
   time_t currTime;
   :
   :
}


kann beim uClinux des PNP/5280 zu einem Laufzeitfehler führen. Ursache ist die Deklaration „szBuf[1024*16]“. Dadurch wird ein 16 KBytes großes Array erzeugt, welches im Stack des übersetzten Programms liegt. Dadurch entsteht zur Laufzeit ein Stack Overflow.

Abhilfe schafft eine globale Variable (nicht schön, aber hilfreich):

Code:
char szBuf[1024*16];

int main (int argc, char* argv[])
{
   int nLen= sizeof (struct sockaddr), nRet, s1;
   long lRet;
   char szWday[16], szMon[16];
   struct sockaddr_in saServer;
   struct tm *tmPtr;
   time_t currTime;
   :
   :
}


Dadurch liegt das 16 KBytes große Array nun im Datensegment der Anwendung.

Gruß

KDW
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    SSV-Forum Foren-Übersicht >>> PNP/5280 Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht teilnehmen.

SSV Software Systems GmbH

Dünenweg 5
30419 Hannover

Tel.: +49(0)511 / 40 000-0
Fax: +49(0)511 / 40 000-40

sales@ssv-embedded.de

© SSV Software Systems GmbH. Alle Rechte vorbehalten.

ISO 9001:2015