hilfe bei der fehlersuche! programm beendet sich ohne fehlermeldung, log ist auf einmal weg.

  • ... ich habe gut 3 monate an einem script / programm gearbeitet und stelle nun folgenden fehler fest:
    nach willkürlicher zeit (meistens so 2 tagen) beendet sich mein programm OHNE fehlermeldung.
    ich lasse zwar an allen möglichen stellen ein logfile schreiben, aber das ding ist rätselhafter weise dann auch verschwunden!? (ist mir völlig unbegreiflich)
    ich habe keine ahnung wie ich den fehler finden kann und bitte um hilfe.
    gibt es nicht ein errorlog (cerror oder so ähnlich) wo windows noch diverse fehlermeldungen speichert, dass ich dort nochmal schauen
    könnte ... oder fällt euch noch etwas ein!?

  • So kurrios es auch klingt, mir ist das auch schon mal passiert! ^^
    Aber zum Glück hatte ich ja ein Backup von meinem durchaus wichtigen Scipt... not :whistling:

    hmmmm, ich glaube du hast mein anliegen nicht verstanden/gelesen. mein script nicht nicht weg, sondern nur das fehlerprotrokoll was es schreibt.

  • hmmmm, ich glaube du hast mein anliegen nicht verstanden/gelesen. mein script nicht nicht weg, sondern nur das fehlerprotrokoll was es schreibt.

    Achsoo ^^ Und wieso zeigst du uns dann nicht mal dein Script??? Denn sonst muss ich dich ernsthaft fragen ob du das Logfile vielleicht mit FileDelete() löschst... ;)

    LG
    Christoph :)

  • in meinem script befinden sich viel informationen wie z.b. verschlüsselte serverkommunikation die ich nicht veröffentlichen möchte. weiterhin steht die überlegung an das ganze zu veröffentlichen, aber in welcher form ist noch unklar... ich weiss, es ist immer besser mit script, aber wenn man so lange an etwas arbeitet und noch das o.g. risiko hat dann möchte man es auch wohl überlegt machen, wenn man es veröffentlicht.

    ich lösche das debuglog genau an der stelle einmal (recht nahe beim programmstart):

    [autoit]


    if $debuglog = 1 Then
    $debuglogworks = FileWrite($ToolTitle&"debug.log","Timer1:"&$Timer1&@LF)
    if @error Then
    MsgBox(0, "Error:"&@error, "Couldn´t create debuglog!"&@CRLF&"Maybe you have no administrations rights given to this app.")
    Exit
    EndIf
    EndIf

    [/autoit][autoit][/autoit][autoit]

    FileDelete(@ScriptDir & "\"&$ToolTitle&"debug.log")

    [/autoit]

    2 Mal editiert, zuletzt von WhiteLion (9. November 2012 um 23:14)

  • Warum löschst du es denn, gleich nachdem du etwas hinein geschrieben hast? :huh: (Mit so einem Mini-Schnippselchen kann man dir wirklich fast nicht helfen, aber Passwörter usw. kann man ja auch löschen/ersetzen?)

    LG
    Christoph :)

  • es sind nicht nur einige PW hardcoded sondern zig selbstgeschriebende verschlüsselungen verteilt über ca. 16.000 zeilen code verteilt in ca. 75 includes. plus einige selbstgeschriebende c++ dll´s die icludiert werden .... ich habe eh wenig hoffnungen das sich da wirklich jemand einarbeiten möchte, selbst wenn ich das alles rauswerfe... dann läufts ja nicht mehr.... es kommuniziert ständig mit dem server. das wäre nen haufen arbeit der recht sinnlos ist und ich bin der meinung, dass es nicht viel nützt, außer das risiko das ich was übersehe erhöht und dann der server geDOSed wird. du kannste es gut finden oder nicht ... es gibt auch leute die möchten / können nicht jedes script veröffentlichen und brauchen trotzdem hilfe :)

  • Zwar verständlich, aber was erwartest du nun großartig an Fehleranalyse? Als langjähriges und erfahrenes Mitglied sollte dir selbst klar sein, dass man mit den wenigen Informationen ohne Script keinerlei Aussage über die Fehlerursache machen kann.
    Da bleibt eigentlich nur noch Autoberts Tipp und selbst suchen. ;)


    Was mich an deiner Aussage irritiert, ist dass die Logdatei weg sein soll. Ist die Datei nun wirklich weg (gelöscht), garnie erstellt worden oder einfach nur leer? Ersteres kann ja nur dann vorkommen wenn...

    - es mit filedelete gelöscht wird
    - oder mit filemove irgendwohin verschoben wird

    Die dafür in Frage kommenden Zeilen finden sollte ja kein Problem sein. Insbesondere sollten dabei auch die verwendeten eigenen includes und ggf. die DLLs geprüft werden. Weitere Möglichkeiten wären...

    - dass es an einem Ort gespeichert wird, welcher von einem externen Programm bereinigt wird. Also z.B. das Temp Verzeichnis des Benutzers plus ein entsprechendes Tool zum säubern der Tempfiles
    - dass es an einem Ort gespeichert wird der inkonsistent ist, z.B. RamDisk, oder defekter Datenträger, evtl externer Datenträger wie Netzlaufwerk oder USB-Stick
    - oder aber ein doofer Anwender der die Datei von Hand löscht (unwahrscheinlich)


    Sollte die Datei nur leer sein, dann kommen alle filewrites dafür in Frage. Da mir selbst schonmal eine Statistik Datei genullt wurde erstelle ich grundsätzlich vor dem Filewrite ein Backup und prüfe nach dem Filewrite die Größe der Datei, ist diese kleiner als das Backup (oder 0) wird das Backup wieder zurückgespielt.

    Ob die Datei überhaupt immer erstellt wird kann einfach mit fileexist geprüft werden, sofern das nicht ohnehin schon getan wird. Vielleicht verhindert UAC oder die Schreibberechtigung des Benutzers ja die Erstellung des Logfiles?

  • gibt es nicht ein errorlog (cerror oder so ähnlich) wo windows noch diverse fehlermeldungen speichert, dass ich dort nochmal schauen
    könnte ... oder fällt euch noch etwas ein!?

    Hi,

    mir ist dazu der Zuverlässigkeitsverlauf bekannt; unter Win7 zu erreichen durch:
    Systemsteuerung\System und Sicherheit\Wartungscenter\Zuverlässigkeitsüberwachung

    Gruß stay