Announcement

Collapse
No announcement yet.

Fehlermeldung mit Quellcode Ausschnitt (VB.NET 2005 Framework 2.0)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fehlermeldung mit Quellcode Ausschnitt (VB.NET 2005 Framework 2.0)

    Hallo Gemeinde,

    ich suche einen Lösungsansatz für die folgende Problematik:

    bei der Entwicklung einer Client/Server Anwendung für ca. 100 Mitarbeiter bildet das Handling von Fehlern ein wichtiges Element. Dazu existiert die Möglichkeit, Fehler per eMail automatisiert an den Entwicklerkreis zu versenden. Via Tracing wird die Position des Fehler detailiert angegeben, sprich: Funktion X, Datei Y, Zeile 200

    Da sich die Anwendung aber in ständiger Weiterentwicklung befindet, sind die Zeilenangaben nach dem Release schon praktisch wieder veraltet. Ich könnte nach jedem Release den Quellcode archivieren, was ich aber verhindern möchte.

    Idee:
    In der Fehler-eMail soll der Quellcode eintragen werden, der zum Fehler führte. Mittels Tracing ist ja bereits bekannt, wo sich der Fehler ereignet hat.

    Beispiel:
    Fehler ereignet sich in Zeile 200 der Quellcode-Datei Y. Dann möchte ich in der Fehlermail die Zeilen 195-205 des Quellcodes mit angeben. Somit weiß ich immer in welchem Areal sich der Fehler ereignete, auch wenn sich dieser mittlerweile an einer anderen Position in der Quellcode-Datei Y befindet.

    Kann mir da jemand weiterhelfen?

    Im voraus vielen Danke,

    dotNet Padawan

  • #2
    Ich könnte nach jedem Release den Quellcode archivieren, was ich aber verhindern möchte.
    Versionierung des Source Codes (das ist einfach!) )ist eine der Grundlagen ordentlicher Projektarbeit. Das mit dem ~verhindern~ solltest du dir nochmal gut überlegen. Man sollte zu jedem Versionsstand der Produktiv irgendwo läuft den SourceCode und das ausführbares Kompilat (zum nachstellen von Fehlern) schnell zur Hand haben.

    Warum lässt du dir nicht einfach den ganzen Stacktrace aus der Exception mitschicken? Der sollte zumindest noch soweit Übereinstimmen das man die passende oder äquivalente Stelle relativ schnell findet.

    Comment


    • #3
      Hallo Ralf,

      Du hast natürlich recht, die Versionierung des Sources Code wird bei uns natürlich nicht gänzlich außer Acht gelassen.

      Es kann allerdings vorkommen, dass wir 5-6 neue Versionen täglich online stellen. In diesen Versionen sind dann nur Mini-Änderungen vorhanden, mit denen wir sehr zeitnah auf Problemchen reagieren oder neue Funktionalitäten zur Verfügung stellen. Solche Mini Update werden nicht versioniert. Eine Versionierung des Source erfolgt schon auf Wochen und Monatsbasis.

      Der StackTrace wird bei uns ebenfalls schon in der erwähnten Fehlermail mit versendet. Jedoch wäre die Versendung des Code-Ausschnitts das Tüpfelchen auf dem i. Ist eben so eine kleine Spinnerei von mir.

      Grüße,

      dotNet Padawan

      Comment


      • #4
        Der StackTrace wird bei uns ebenfalls schon in der erwähnten Fehlermail mit versendet. Jedoch wäre die Versendung des Code-Ausschnitts das Tüpfelchen auf dem i. Ist eben so eine kleine Spinnerei von mir.
        Die Anwendung enthält den SourceCode nicht. Du kannst versuchen auf Anwendungsseite den ildasm (MSIL Disassembler, gehört zum Framework) irgendwie zu automatisieren um etwas Sourcecode ähnliches zu bekommen. Ist aber wahrscheinlich nicht einfach. Zumindest nicht einfacher als eine vernünftige Versionierung. Es kostet ja nichts vor einem Rollout dem aktuellen Stand eine Versionsnummer zu vergeben und einzuchecken. Und wenn ihr schon mehrere Versionen pro Tag habt wäre gleich ein Continious Integration System zu empfehlen dann läuft der ganze Müll (bauen, testen, versionieren, deployen etc.) gleich automatisch.

        Comment


        • #5
          Hallo Ralf,

          danke für Deine schnellen Kommentare.

          Ich dachte, dass man mittels Reflection auch irgendwie zur Laufzeit auch wieder an den Source kommen kann. Solche Programme wie .NET Reflector können doch auch auf Quellcodezeilen-Ebene anzeigen, wo die Rechenzeit hingeht. So ähnlich dachte ich, könnte ich auch auf den Quellcode zugreifen und per eMail versenden.

          Das Stichwort "Continious Integration System" werde ich mir mal zu Gemüte führen und sehen, was ich davon verwenden kann.

          Vielen Dank.

          Trotzdem bin ich für weitere Vorschläge offen. So einfach möchte ich meine Spinnerei nicht aufgeben ;-)

          Comment


          • #6
            Solche Programme wie .NET Reflector können doch auch auf Quellcodezeilen-Ebene anzeigen, wo die Rechenzeit hingeht.
            Weil sie es ausprogrammiert haben aus dem dissasemblierten MSIL wieder lesbaren Code zu machen. Das ist aber natürlich nicht der ursprüngliche Code sondern nur ein bedeutungsgleicher rückübersetzter Code. Wenn denn der Reflector die Rückübersetzung hin bekommt was er nicht immer schafft.

            Kannst ja mal nachschauen ob sich der Reflector automatisieren lässt(ich bezweifle das).

            Comment


            • #7
              Jetzt bewegen wir uns in die Richtung, in die ich gehen möchte. Allerdings hört hier mein Latein auf. Ein paar Anregungen, wie man sowas bewerkstelligt, oder auch Erfahrungen, wäre da sehr nett ;-)

              Danke...

              Comment

              Working...
              X