Beantwortet Programmabsturz wegen Virenscanner???

  • Dienstag, 11. September 2012 06:54
     
     

    Hallo Gemeinde,

    mein VB-Programm ist beim Debuggen schon zweimal abgestürzt.  Beide Male lief dann im Hintergrund mein Virenscanner.
    Könnte das der Grund für den Absturz sein?
    Falls ja, was kann ich dagegen unternehmen?  (Den Virenscanner abschalten wäre eine sub-optimale Lösung.)

    Danke für Eure Unterstützung.

    Herzlichen Gruß - Walter


    wafest42

Alle Antworten

  • Dienstag, 11. September 2012 07:11
     
     Beantwortet

    Hallo Walter,

    klar kann ein Virenscanner die Ursache für einen Absturz einer Anwendung sein. Aber ca. eine Zilliarde andere Sachen auch.

    Um auch nur ansatzweise zu erahnen, wo das Problem liegen könnte, poste bitte die genaue und vollständige Fehlermeldung.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert mowastengr Mittwoch, 12. September 2012 07:48
    •  
  • Dienstag, 11. September 2012 15:59
     
     

    Hallo Stefan,

    danke für das Kommentar,  aber leider gibt es beim Absturz - selbst im Debug Modus - keinerlei Fehlermeldung.

    In der Anwendung läuft eine Uhr (10:34:12) mit, die auch die Sekunden anzeigt. Zu verschiedenen Sekunden werden normalerweise verschieden Events getriggert (Taskmanager).  Diese Uhr bleibt einfach stehen, und es dauert dann einige Zeit den Running Modus zu stoppen, wenn der Stopp-button im Debug Modus geklickt wird.

    Gruß - Walter


    wafest42

  • Dienstag, 11. September 2012 16:49
     
     
    Hallo Walter,

    ist in der Dialogbox Menu Debug - Exceptions bei Common Language Runtime Exceptions die Checkbox Thrown aktiviert? Dann müsste im Debug Modus bei einer Exception gestoppt werden und diese angezeigt werden. Falls es denn eine Exception überhaupt gibt.
  • Dienstag, 11. September 2012 17:07
     
     

    Hallo Walter,

    nur weil ich versuche es zu verstehen: wie erkennst Du denn ein Programm Abstürzt? Wenn es nicht das erwartete Verhalten bringt, so bleibt ein Absturz etwas das man an einer Fehlermeldung erkennt.

    Nun ich nehme mal an Du hast Timer Events im Hintergrund. Dann ist es normal wenn das Programm ein wenig zögerlich reagiert. Es werden ja mehrere Sachen gleichzeitig gefordert.
    Grüße Alexander

  • Mittwoch, 12. September 2012 07:47
     
     

    Hallo Alexander

    siehe bitte meine Antwort an Stefan - da habe ich das Fehlerverhalten erläutert.

    Danke für Deine Interesse.

    Gruß - Walter


    wafest42

  • Mittwoch, 12. September 2012 15:55
     
     

    Danke für den Tip, Markus.

    ich habe es tatsächlich geschafft das "Thrown" zu aktivieren - und jetzt bekomme ich die Fehlermeldung: 'System.StackOverflowException' occurred in System.Drawing.dll

    an der Stelle im Programm:

            Try
                Call Instance_XY_Curves.XYPlot.Refresh()    <---------- Error here
            Catch ex As Exception
                MessageBox.Show(ex.Message, "XYPlot.Refresh()")
            End Try

    Da ist noch der Hinweis auf eine Endlosschleife, die ich natürlich nicht wissentlich programmiert habe. Es muss etwas sein, was im Hintergrund ungewollt passiert.  Kann das mit try ... zusammen hängen.

    Danke für Deine Unterstützung

    Herzlichen Gruß - Walter


    wafest42

  • Mittwoch, 12. September 2012 16:00
    Moderator
     
     

    Hallo,

    Also mit Try kann das nicht zusammen hängen, es kommt ja eine Exception, die du nun auswerten musst. Der Fehler muss in Call Instance_XY_Curves... liegen. Setze mal mit F9 bei der Zeile einen BreakPoint und mach dann mal mitt F11 Zeile für Zeile weiter, und gucke, was genau sich wiederhohlt. Wenn Die Methode aus einer ThirdParty DLL kommt, so hast du vlt. ein Event abboniert, welches dann ebenfalls Refresh() aufrufen würde.


    Koopakiller - http://koopakiller.ko.ohost.de/

  • Mittwoch, 12. September 2012 17:58
     
     

    Hi Walter,

    das Problem hattest du doch schon in mal:

    http://social.msdn.microsoft.com/Forums/de-DE/visualbasicde/thread/970f4d14-9828-4b32-83bc-2e6d0567d4ab/#dd352fe4-78e2-4975-a142-c5ca693189f9

    Da der Fehler nur Auftritt wenn das Form Sichtbar ist.

    Würde ich mal darauf Tippen das du Irgendwo ein Event abfängst was auf das Refresh reagiert und dann wieder das Refresh aufrufst.

    MFG

    Björn

  • Mittwoch, 12. September 2012 19:22
     
     
    Hallo Walter,

    wenn die Exception aufgetreten ist und das Programm im Debug  angehalten hat könnte Debug - Windows - Call Stack Aufschluss geben welche Prozeduren aufgerufen wurden.

    Auch Debug - Break All im Falle wenn das Programm lange braucht kann zeigen wo die aktuelle Ausführung ist. Im Falle der Endlosschleife eben immer wieder ist.

    Wie es scheint wurde die Exception nicht abgefangen und blieb unentdeckt. Zur Sicherheit hilft hier ein UnhandledExceptionHandler.

      Dim currentDomain As AppDomain = AppDomain.CurrentDomain
      AddHandler currentDomain.UnhandledException, AddressOf UnhandledExceptionHandler

      Public Shared Sub UnhandledExceptionHandler(ByVal sender As Object,
                                                                                 ByVal args As UnhandledExceptionEventArgs)
        Dim ex As Exception = DirectCast(args.ExceptionObject, Exception)
        MsgBox(ex.Message, , "Unhandled Exception")
      End Sub

  • Freitag, 14. September 2012 09:35
     
     

    Hallo Markus,

    ich habe jetzt in den Try

    Catch thisExcep AsSystem.StackOverflowException

    eingefügt.  Und jetzt scheint die Application stabil zu laufen.

    Danke für Deine Unterstützung.

    Bis zum nächstenmal.

    Gruß - Walter


    wafest42

  • Freitag, 14. September 2012 09:38
     
     

    Ja, Du hast Recht, Björn, der Fehler ist immer wieder aufgetreten.

    Aber siehe bitte meine Antwort an Markus unten - ich glaube ich hab's geschafft.

    Danke für Deine Unterstützung.

    Bis zum nächstenmal.

    Gruß - Walter


    wafest42

  • Freitag, 14. September 2012 09:40
     
     

    Danke für den Hinweise, Koopakiller.

    Aber siehe bitte meine Antwort an Markus weiter unten.

    herzliche Grüße - Walter


    wafest42

  • Freitag, 14. September 2012 20:16
     
     

    Hallo Walter,

    du schriebst:
    > ich habe jetzt in den Try
    > Catch thisExcep AsSystem.StackOverflowException
    > eingefügt. Und jetzt scheint die Application stabil zu laufen.

    Besser wäre es die Ursache zu finden und zu beheben.
    Siehe auch stackoverflowexception




  • Montag, 17. September 2012 17:20
     
     

    Hallo Markus,

    mit dem Finden der Ursache hast Du natürlich recht (aber bei Microsoft ist das manchmal sehr schwierig). Und mein Optimismus wurde nicht belohnt: der Fehler trat leider wieder auf.

    Aber die Ursache scheint zu sein, dass meine Application eine (fremd)Routine zu schnell hintereinander gestartet hat - vor sie wirklich abgeschlossen hatte. (ein redraw von einem Plot am Bildschirm).

    In der neuesten Version meiner Application wird dieses redraw höchstens jede Minute einmal durchgeführt - das klappt jetzt hoffentlich.

    Danke für Deine Unterstützung

    Herzlichen Gruß - Walter


    wafest42