"Nicht genügend Speicher" - Absturz

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Benutzeravatar
Mirco
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 143
Registriert: Di, 03. Feb 2009 15:47
Wohnort: Viersen
Kontaktdaten:

"Nicht genügend Speicher" - Absturz

Beitrag von Mirco »

Hallo zusammen,

ein Kunde hat einen neuen PC, Win 7 64-bit mit einer SSD-Festplatte. Die SSD-Festplatte ist so das Bauteil, mit dem wir wenig Erfahrung haben.

Auf dem entsprechenden PC tritt regelmäßig beim Arbeiten die Fehlermeldung "Nicht genügend Speicher auf", Fehler Base/1005. Der Fehler tritt laut Kunde an verschiedenen Stellen zu verschiedenen Zeiten im Programm auf. Einmal trat der Fehler beim Programmstart auf, die entsprechende Fehlermeldung / Zeile ist:

Code: Alles auswählen

[131] If AScan(oPrinter:List(),cPDFWriter) == 0
Habt ihr eine Idee, woran es liegen kann?

LG
Mirco
Dateianhänge
Fehlermeldung
Fehlermeldung
xbase_fehler.png (62.32 KiB) 9433 mal betrachtet
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von brandelh »

Ich denke nicht, dass damit der Festplattenspeicher gemeint ist !
Eventuell Auslagerungsdatei und zu wenig Hauptspeicher, eventuell auch der STACK (den kann man hochsetzen, einfach nach STACK* suchen).

Ich dachte erst es wäre ein Problem XbpPrinter:list() einfach so bei ascan anzugeben, da dieses ja auch NIL sein kann (laut Doku wenn kein Drucker installiert ist).
Allerdings ergab mein Test, dass bei NIL einfach 0 für 'nicht gefunden' zurückgegeben wird.

Code: Alles auswählen

procedure MAIN
   local aArrayNil := NIL
   ? "Was passiert wenn ascan NIL durchsuchen soll"
   if ascan( aArrayNil, "Test" ) = 0
      ? "Es gibt 0 für 'nicht gefunden' zurück" //   <== das wird angezeigt.
   else
      ? "Es findet sogar was"
   endif
   wait
return
Gruß
Hubert
Benutzeravatar
Mirco
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 143
Registriert: Di, 03. Feb 2009 15:47
Wohnort: Viersen
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von Mirco »

Hey,

ja, hatte auch erst im Verdacht, dass kein Drucker vorhanden ist und es deswegen Probleme gibt. Allerdings tritt der Fehler ja anscheinend an verschiedenen Programmpunkten auf, deswegen hatte ich das auch ausgeschlossen. Aber schön das dein Test zeigt, dass es auch theoretisch egal wäre :).

Ich denke auch nicht, dass der Festplattenspeicher Schuld ist, sondern hatte auch sowas wie Auslagerungsdatei oder so im Kopf. Von der Programmeinstellung her dürfte es eigentlich nichts sein, denn es läuft ja zigfach bei anderen Kunden problemlos. Habe da irgendwie die SSD im Verdacht, da diese eigentlich der einzige (bis jetzt sichtbare) Unterschied zu den anderen PCs ist.

Habt ihr ein paar Tipps, was ich mir an der PC-Konfiguration mal ansehen soll? Wollte mich nachher nochmal bei dem Kunden melden, könnte dann per Fernwartung direkt nachschauen.

LG
Mirco
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2825
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 96 Mal
Danksagung erhalten: 13 Mal

Re: "Nicht genügend Speicher" - Absturz

Beitrag von georg »

Hallo, Mirco -


wenn es EIN PC ist, könnte es auch der Anwender sein ...

Deine Überlegung mit der SSD ist nicht so verkehrt, da diese Teile (meist) beschränkt gross sind und man oft nicht merkt, wenn der Plattenplatz ausgeht (ist mir auch schon ein paar Mal passiert).

Also würde ich per Fernwartung prüfen, wieviel Platz auf der Platte noch frei ist, und dann auch mal prüfen, wieviele Programme der Anwender am Laufen hat.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: "Nicht genügend Speicher" - Absturz

Beitrag von Manfred »

Hast Du mal nachgesehen, wie groß die Auslagerungsdatei ist, oder werden kann? Evtl. ist sie zu klein dimensioniert, oder aber dynamisch und killt damit die SSD? Wenn genug RAM vorhanden ist, schalte sie doch einfach mal ab. Nur zum Test.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: "Nicht genügend Speicher" - Absturz

Beitrag von AUGE_OHR »

Mirco hat geschrieben:ein Kunde hat einen neuen PC, Win 7 64-bit mit einer SSD-Festplatte. Die SSD-Festplatte ist so das Bauteil, mit dem wir wenig Erfahrung haben.
wenn der Kunde beides "zusammen" bekommen hat "sollte" Win7 richtig installiert sein.
es gibt diverse Programme womit man ein SSD prüfen kann ob die richtig "eingestellt" ist.
georg hat geschrieben:Deine Überlegung mit der SSD ist nicht so verkehrt, da diese Teile (meist) beschränkt gross sind und man oft nicht merkt, wenn der Plattenplatz ausgeht (ist mir auch schon ein paar Mal passiert).
man sollte eine SSD nie "voll" machen ... max. 60-70% ...
der TRIM Befehl wird übrigens nur im "Leerlauf" ausgeführt und "das" kann bei "langen Aktionen" zu wenig Speicherplatz führen weil kein TRIM ausgeführt werden konnte.
gruss by OHR
Jimmy
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2825
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 96 Mal
Danksagung erhalten: 13 Mal

Re: "Nicht genügend Speicher" - Absturz

Beitrag von georg »

Hallo, Jimmy -


was man tun soll oder nicht, steht nicht zur Frage. "Unbemerkt" ist hier eher der Begriff, der gemeint war.

Man gewöhnt sich an "riesige" Platten (3 TB sind derzeit wohl en vogue), und ist dann auch einem Laufwerk, dass nicht mal ein Zwanzigstel davon hat. Da kann es schon mal zum Überlaufen kommen.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: "Nicht genügend Speicher" - Absturz

Beitrag von AUGE_OHR »

georg hat geschrieben:"Unbemerkt" ist hier eher der Begriff, der gemeint war.
naja ... "unbemerkt" auf meinem PC "hasse" ich ... deshalb wird ständig "kontrolliert" ...
georg hat geschrieben:Man gewöhnt sich an "riesige" Platten (3 TB sind derzeit wohl en vogue), und ist dann auch einem Laufwerk, dass nicht mal ein Zwanzigstel davon hat. Da kann es schon mal zum Überlaufen kommen.
YUP ... aber "was" brauche ich den auf der SSD ?
zugegeben habe ich zunächst auch "alles" auf der SSD installieren wollen aber nur ein Bruchteil nutze ich tatsächlich "ständig"
und nur das ist jetzt noch auf der 1st. SSD, der Rest dann auf der HDD.

es gibt nun einige Programme mit dem man installierte Programme "verschieben"*** kann auf eine andere Partition
und die "guten" Programme haben eine Statistik welche Programme "selten" genutzt wurden.
***arbeitet mit Hardlinks

beachten sollte nur das die Environment TEMP und TMP ja gewöhnlich auf C:\... gesetzt ist.
mit der Zeit sammelt sich da viel "Müll" an -> Datenträgerbereinigung

p.s. die TEMP / TMP Ordner sollte man nur bei "laufenden" Windows löschen ... einige Dateien lassen sich dann NICHT löschen !!!
wenn man von einem externen Medium bootet und die Dateien löscht dann bootet evtl Windows nicht mehr !!!
gruss by OHR
Jimmy
Benutzeravatar
Mirco
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 143
Registriert: Di, 03. Feb 2009 15:47
Wohnort: Viersen
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von Mirco »

Hallo zusammen,

also ich konnte das Problem in der Hinsicht eingrenzen, dass der Fehler zwar an verschiedenen Stellen im Programm auftritt, die betreffende Codestelle aber immer dasselbe macht. Es wird immer die :List() Funktion eines zuvor erstellten XbpPrinter() Objektes aufgerufen. Drucker beim Kunden sind einige vorhanden.

Hat einer von euch eine Idee?
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von brandelh »

Nutze die API Funktionen ;-)
Gruß
Hubert
Benutzeravatar
Mirco
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 143
Registriert: Di, 03. Feb 2009 15:47
Wohnort: Viersen
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von Mirco »

Puh, also in zukünftigen Programmen gerne, aber ich glaube nicht, dass wir großartig in dieser Version dahingegen was ändern ;-).
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von brandelh »

Ich denke, dass die Liste der Drucker die zurückgegeben wird den STACK überlaufen läßt,
also STACK erhöhen und nochmal probieren. :arrow: Linker Optionen :arrow: /ST
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von brandelh »

brandelh hat geschrieben:Nutze die API Funktionen ;-)
Ui ... EnumPrintersA() hat es in sich ;-)

:arrow: http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von Tom »

Ich denke, dass das Problem ganz woanders liegt, vermutlich im Bereich der Druckertreiber. Erzeuge doch einfach mal ein kleines Testprogramm, das lediglich ein Printer-Objekt anlegt und die Liste der Drucker abruft, um sie beispielsweise anzuzeigen (aChoice oder simples "?"). Wahrscheinlich wird schon das crashen, ggf. bei einem mehrmaligen Aufruf kurz nacheinander. Schlecht programmierte Druckertreiber - und davon gibt es viele, auch aus namhaften Häusern - können drastische Probleme erzeugen.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von brandelh »

Klar, daran kann es auch liegen ;-)

Dieses Testprogramm habe ich vor einigen Tagen erstellt:

Code: Alles auswählen

proc main
   local oXP
   oXP := XbpPrinter():new()
   if oXP # NIL
      ? "Druckerliste"
      aeval( oXP:List(), {|cP| qout( "'"+cP+"'" ) } )
      ?
      ? "Default Drucker"
      oXP:create()
      ? "'"+oXP:devName+"'"
      oXP:destroy()
   else
      ? "Fehler bei Druckerabfrage"
   endif
   ?
   wait
return
Und wenn du wissen willst, ob es mit anderen Sprachen auch auftritt, habe ich dir das Testprogramm mit PowerBasic erstellt:

Code: Alles auswählen

#COMPILE EXE
#DIM ALL
#DEBUG ERROR ON

FUNCTION PBMAIN() AS LONG
  LOCAL i AS LONG
  CLS
  ?
  ? "Installierte Drucker: "
  ?
  FOR i = 1 TO PRINTERCOUNT
     ? i "'"+PRINTER$(NAME, i)+"'"
  NEXT
  ?
  ? "Ende, bitte Taste drücken"
  ?
  WAITKEY$
END FUNCTION    
Dateianhänge
PowerBasicDruckerListe.zip
(8.27 KiB) 216-mal heruntergeladen
Gruß
Hubert
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von UliTs »

Tom hat geschrieben:Ich denke, dass das Problem ganz woanders liegt, vermutlich im Bereich der Druckertreiber. Erzeuge doch einfach mal ein kleines Testprogramm, das lediglich ein Printer-Objekt anlegt und die Liste der Drucker abruft, um sie beispielsweise anzuzeigen (aChoice oder simples "?"). Wahrscheinlich wird schon das crashen, ggf. bei einem mehrmaligen Aufruf kurz nacheinander. Schlecht programmierte Druckertreiber - und davon gibt es viele, auch aus namhaften Häusern - können drastische Probleme erzeugen.
Hallo Tom,
ich habe ähnliche Probleme...
Das Problem ist aber, dass es nur sporadisch auftritt...
Ich vermute aber auch, immer in Verbindung mit der XbpPrinter()-Klasse :oops:
Aber ohne die kann man ja wohl schlecht drucken ...

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von Tom »

Aber ohne die kann man ja wohl schlecht drucken ...
Kann man nicht? Meine Applikationen drucken sehr, sehr viel, aber die XbpPrinter-Klasse wird überhaupt nicht benutzt. :wink:
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von brandelh »

Ich drucke auch viel und habe keine Probleme ;-)

Wenn es am Druckertreiber liegt, müssten alle Programme das gleiche Problem haben ...
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: "Nicht genügend Speicher" - Absturz

Beitrag von AUGE_OHR »

Mirco hat geschrieben:Es wird immer die :List() Funktion eines zuvor erstellten XbpPrinter() Objektes aufgerufen.
sind das Netzwerk Drucker ?
zeig uns doch mal deine PrinterPS wie du das XbpPrinter() Objekt anlegst.
gruss by OHR
Jimmy
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von Tom »

Wenn es am Druckertreiber liegt, müssten alle Programme das gleiche Problem haben ...
Nein. Es gibt sehr unterschiedliche Herangehensweisen, unterschiedliche Level des Zugriffs usw. Ein Druckertreiber, der im Umgang mit Software XY Probleme macht, kann trotzdem in/für Office (scheinbar) gut funktionieren. Office druckt nicht so, wie wir das tun.
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: "Nicht genügend Speicher" - Absturz

Beitrag von AUGE_OHR »

wie Tom schon sagte muss es ja nicht "nur" am Treiber liegen.

IMHO muss man Netzwerkdrucker "anderes" initialisieren wie einen "lokal" Drucker ... man "merkt" es an o:Printerstatus() ob es "richtig" ist oder nicht.
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von brandelh »

Aber es kracht doch in der :LIST() Methode und die wird sicherlich die API Funktion EnumPrintersA() aufrufen. :wink:

Da fällt mir ein, was passiert wenn du statt dessen XbpPrintDialog() nutzt um den Drucker auszuwählen ?

Weder das Drucken selbst, noch die Initialisierung des eigentlichen Betriebssystemdruckerobjektes hat zu diesem Zeitpunkt stattgefunden.
Knallt es eigentlich IMMER an diesem Rechner oder auch nur ab und zu ?
Wenn es nur ab und zu kracht, könnte natürlich auch andere API / DLL Aufrufe die nicht richtig beendet wurden zuvor einen Speicherkonflikt verursacht haben, der nur noch nicht bemerkt wurde.
Gruß
Hubert
Benutzeravatar
Mirco
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 143
Registriert: Di, 03. Feb 2009 15:47
Wohnort: Viersen
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von Mirco »

Hallo zusammen,

danke für eure ganzen Hinweise, ich bin auf jeden Fall noch an dem Thema dran und gebe euch auch eine Rückmeldung. Aktuell gibt's aber (wie immer :D) noch ein paar andere Probleme, um die ich mich jetzt erst einmal kümmern muss ;).

Melde mich spätestens nächste Woche wieder.

Genießt den Schnee ;)
Gruß
Mirco
Benutzeravatar
Mirco
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 143
Registriert: Di, 03. Feb 2009 15:47
Wohnort: Viersen
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von Mirco »

Hallo zusammen,

also, das Problem ist (natürlich) noch nicht behoben, es sind relativ viele andere Sachen dazwischen gekommen.

Ich werde mich am kommenden Montag bei dem Kunden nochmal per Fernwartung einwählen und gucken, ob ich etwas herausfinde.

LG
Mirco
Benutzeravatar
Mirco
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 143
Registriert: Di, 03. Feb 2009 15:47
Wohnort: Viersen
Kontaktdaten:

Re: "Nicht genügend Speicher" - Absturz

Beitrag von Mirco »

Habt ihr noch ein paar Tipps, was ich nachschauen kann / soll, dass euch vielleicht hilft, mir zu helfen ;)?

Danke & LG

(PS: Die Sonne scheint endlich etwas :) )
Antworten