vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Run-Time error མ' 
Autor: caramba
Datum: 17.01.10 09:35

Hallo,

um meine Applikation in einem simulierten End-User-Umfeld zu testen,
habe ich diese auf einem sauberen PC installiert. Sowohl mein Ent-
wicklungsrechner wie auch der saubere PC haben 1GB Memory.

Wenn ich nun auf dem Testrechner einen Druck-Job starte, erhalte ich
den Error '28' - Out of stack space. Ich habe mehrere Druckprogramme
getestet; bei allen das gleiche (negative) Resultat.

Ich arbeite mit VB6, sev-Tools und zum Druck List & Label 15 unter XP.


Kann mir hier jemand weiterhelfen?

Danke
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Run-Time error མ' 
Autor: Preisser
Datum: 17.01.10 17:54

Hi,
vermutlich wird eine Sub/Funktion so oft rekursiv ausgerufen, dass der von Windows zugewiesene Stapelspeicher überläuft. Dies kann man beispielsweise so simulieren:
Option Explicit
Dim i As Long
Private Sub EndlosAufruf()
    On Error Resume Next
    i = i + 1
    Err.Clear
    EndlosAufruf
    If Err.Number <> 0 Then MsgBox i & " - " & Err.Number & " - " & _
      Err.Description
End Sub
 
Private Sub Form_Load()
    EndlosAufruf
End Sub
Nachdem die EndlosAufruf-Sub sich ungefähr 3300x selbst aufgerufen hat, erscheint der angegebene Runtime Error nur 28 - "Nicht genügend Stapelspeicher". Dieses Problem tritt u. a. bei rekursiven Algorithmen, wenn sie sich zu oft selbst aufrufen. Die Anzahl an Aufrufen hängt auch von den in der Sub/Funktion verwendeten Variablen ab, da diese ja alle auf dem Stack gelagert werden.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Run-Time error མ' 
Autor: caramba
Datum: 17.01.10 18:37

Hallo,

die Vermutung habe ich auch schon gehabt; jedoch keine Ursache
gefunden. Unverständlich ist nur, dass die Programme auf dem
Entwicklungsrechner problemlos laufen - und da habe ich auch
nur 1GB Memory.

Gruss
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Run-Time error མ' 
Autor: ManfredV
Datum: 21.01.10 17:55

Ich würde versuchen, mit einem Dateiprotokoll zu arbeiten.
Ich würde dann beispielsweise einen Text "Job Start" in eine Datei schreiben, wenn die Prozedur zum Starten des Druckjobs aufgerufen wird und sowas wie "Job End", wenn die Prozedur beendet wird.
Wenn sich dann am Ende nur die beiden Zeilen "Job Start" und "Job End" in der Datei befinden, es aber trotzdem zu dem von Dir beschriebenen Fehler kommt, dann müssen all die Prozeduren, die von eben dieser Prozedur aufgerufen werden, ebenso mit einer Protokollierung versehen werden - am besten natürlich mit unterschiedlichen Texten, damit Du unterscheiden kannst, welche Prozedur nun genau aufgerufen oder beendet wird.

Wenn Du das konsequent bis zum Ende durchführst, dann gibt es zwei Möglichkeiten:
1. Irgendwann enthält das Protokoll quasi unendliche Einträge ein und derselben Prozedur mit "Job Start" - dann hast Du den Übeltäter gefunden.
2. Das Protokoll sieht normal aus, der Fehler tritt aber immer noch auf. Dann liegt das Problem in einer der Komponenten, die Du aufrufst. Aber wenn Du Dir das Protokoll anschaust unmittelbar nachdem dieser Fehler aufgetreten hast, dann kannst Du aufgrund des letzten Eintrags möglicherweise die Komponente identifizieren, die fehlerhaft arbeitet.

Merkwürdig bleibt natürlich, dass Dein Programm auf einem Rechner läuft, auf dem anderen nicht. Ist auf beiden Rechnern dasselbe Betriebssystem mit exakt denselben Service Packs und Patches?

Beitrag wurde zuletzt am 21.01.10 um 17:56:27 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel