Programme unter Windows killen



  • Ich bringe es in der letzten Zeit immer wieder fertig dass meine eigenen geschriebenen Programme sang und klanglos abstürzen. Meistens bleibt dann das Konsolenfenster folgendermaßen hängen:

    - Konsolefenster reagiert nicht auf den Beende-Button, kann aber problemlos verschoben, minimiert, ... werden
    - Task Manager findet hängengebliebene Anwendung, kann den Task aber nicht beenden
    - Im Task Manager finde ich den entsprechenden Prozess nicht
    - Im Process Explorer finde ich den Prozess ebenfalls nicht
    - Versuch neuzustarten/abzumelden ist fatal, da Windows dann komplett hängenbleibt. Windows scheint auf den hängengebliebene Prozess zu warten.

    Das Resultat: Kompletter Neustart mittels Reset Taste. 😞

    Wie kann ich einen solchen Prozess abschiessen ??? 😕



  • Nachtrag:

    Wenn ich die Funktion "Find Window's Process (drag over window)" des Process Explorers benutze, bekomme ich die Fehlermeldung "Unable to find the window's owning process in the current process list" 😞



  • springt vielleicht der debugger an?



  • Leider nicht. 😞

    Es ist keine Fehlermeldung aufgetaucht sondern das Program ist einfach nur hängengeblieben. Also "Programm zeigt Fehlermeldung -> Debugger startet" geht leider nicht.

    Ich hatte auch schon an windbg gedacht. Aber leider wird ja kein Prozess gefunden an den ich den Debugger attachen könnte. Offenbar ist ein Fenster vorhanden, der Prozess aber nicht. Und noch geiler. Offenbar verarbeitet das Fenster auch Nachrichten, bloß keine Nachrichten zum Beenden des Fensters.



  • Lustig. Mittels Spy++ habe ich das Fensterhandle bestimmen können.

    Also habe ich mal ein DestroyWindow/CloseWindow/EndTask ausprobiert. Hat alles fehlgeschlagen. Aber ein GetWindowText funktioniert ohne Probleme. 😡



  • Versuch mal irgendwo von einer alten NT4 Server CD , das tool kill.exe zu bekommen. Google müßte da auch was finden.



  • Wenn ich richtig gelesen habe, lässt du eine eigene Konsolenanwendung unter Windows laufen und diese stürzt so gewaltig ab, dass selbst Windows in die Knie geht und nichts geht mehr?

    Da kann es sich nur um einen 'Kapitalen Bock' in deinem Programm handeln, den du finden musst!

    Vorschläge:
    1. Debuggen, Exceptions, oder was auch immer der Compiler zum 'sauberen' Programmieren als Hilfe bietet.
    2. Eine eigene Protokolldatei für den Ablauf des Programmes einrichten. Näheres dazu auf meiner Webseite http://berniebutt.npage.de -> Programmierung -> Protokolldatei

    Merke: Nur triviale Programme sind absolut fehlerfrei - aber welches Programm ist trivial? :p



  • Welches Windows benutzt du denn? Deine Beschreibung klingt sehr obskur. Das sollte alles fuer normale Anwendungsprogramme nicht passieren.

    Wie kann ich einen solchen Prozess abschiessen ???

    Was willst du denn abschiessen, wenn du kein Ziel hast?



  • knivil schrieb:

    Was willst du denn abschiessen, wenn du kein Ziel hast?

    Genau das ist wohl das problem. Er hats schon abgeschossen (Hartcodiert) und nicht nur das Programm sondern auch einiges mehr dazu, wies aussieht...



  • Die Konsolen werden IMHO von CSRSS.exe erzeugt, das offenbar den Kontakt zu deinem Programm verloren hat (CSRSS glaubt, dass der Prozess noch existiert). Entweder ein Bug in Windows oder Du hast dir einen Virus eingefangen.



  • @mdmr:
    Ich habe das Ganze schon mit dem Tool pskill von der Sysinternals Suite ausprobiert. Aber es geht funktioniert leider in diesem Fall nicht. 😞

    @bernibutt:
    Der Fehler tritt immer dann auf, wenn ich das Program aus dem Visual Studio heraus im Debuggermodus starte, dann einen Break mache und dann bei aktivem Breakpoint das Debugging mittels Visual Studio (nicht mit meinem Program) beende. Der Fehler tritt dabei nur sporadisch auf.

    Aber es wundert mich nicht dass das Ganze sich manchmal komisch verhält. Eben weil ich gerne manchmal diesen harten Schritt mache und das Debugging mittels Visual Studio beende, vermute ich das paar Handle's,Thread's,Timer's,... noch offen sind und so mir das Visual Studio instabil machen.

    Im Allgemeinen bringe ich oft mein Visual Studio zum Abstürzen. Wenn ich beispielsweise mein Programm im Visual Studio im Debugger starte und dann Spy++ an den Debug-Prozess attache, friert mein System immer komplett ein. Oder wenn ich mein Program im Debugger starte und dann das Program DebugDiag drauf loslasse, bekomme ich Dump Dateien im GByte-Bereich. (Es könnte aber auch gewesen sein dass ich den Application Verifier gleichzeitig mit DebugDiag benutzt habe. 😕)

    Hey man, Application Verifier ist mein Freund wenn's in Sachen Erster April Scherz geht. Einfach den Application Verifier für das Lieblingsprogramm deines Arbeitskollegen konfigurieren, dabei alle Tests einschalten und dein Arbeitskollege wird sich über das Verhalten wundern. 😃

    Es wundert mich daher nicht, dass der Debug Prozess von meinem Program manchmal so fürchterlich abstürzt, eben da ich vermutlich einige Dinge beim Debuggen falsch mache.

    @knivil:
    Ich benutze WindowS XP Prof. SP3 und wie oben angedeutet tritt der Fehler nur beim Debugging aus dem Visual Studio auf.



  • Hallo zusammen,

    Es sieht so aus, als ob Microsoft da einen kleinen Bug in Windows eingebaut hat und per Update verteilt hat. Diese Probleme haben andere auch.
    Ein paar Infos gibt's z.B. hier http://blogs.msdn.com/debugger/archive/2010/03/11/help-my-console-windows-won-t-go-away.aspx


Anmelden zum Antworten