Wie Win32-Service debuggen?



  • Ich brauche dringend Hilfe. 😞

    Und zwar entwickle ich einen Windows-Service unter Visual Studio 2003. Leider stürzt er hin und wieder sporadisch an exakt derselben Adresse ab. Dann springt dieses Standard-Debug-Fenster auf (Ok oder Abbrechen zum Debuggen). Wenn ich jedoch den Debugger an den Prozess attachen will, kommt die Meldung "Unable to attach to the process. Zugriff verweigert".

    Ich hab schon alles probiert, dem Service andere Rechte gegeben usw. Im Code arbeite ich eigentlich auch konsequent mit Fehlerbehandlung und logge mir einige Sachen in einer Textdatei. Aber genau dieser Fehler ist einfach nicht zu finden.

    Habt ihr eine Idee? Gibt es vielleicht die Möglichkeit den Service irgendwie komplett zu tracen? Bin echt ratlos.



  • Wegen der Rechtesache...

    Versuch doch mal dein Visual Studio (oder was auch immer) im selben Kontext zu starten wie den Dienst.

    Praktisch bedeutet das, lass dein VS mit dem "AT"-Befehl (Kommandozeile) starten. Das VS erbt dann dessen Kontext (läuft dann als System-Prozess) und dann kannst dich an auf den Dienst connecten (vielleicht 🙂

    Habs selber nie gemacht, war nur mein erster Gedanke.
    Gib mal bescheid obs funktioniert hat 🙂



  • Das Problem ist gelöst und lag noch nicht mal an meinem Dienst. 🙂

    Mein Account hatte seltsamerweise kein SeDebugPriviledge. Über Kommandozeile und:

    ntrights +r SeDebugPrivilege -u <myusername>
    

    kann man sich dieses Recht geben und dann funktioniert das Anhängen an einen laufenden Prozess.

    Und meinen Pointerfehler hab ich auch endlich gefunden. 👍


Anmelden zum Antworten