Hallo community;
Ich habe eine Frage zum Debuggen mit Visual Studio 2010.
Gestern habe ich ein Programm übernommen in welchem ich nach Bugs usw suchen soll, nun ist das Problem das es sich um eine Spooler -> Worker Kombination handelt. Für den Spooler ansich zu debuggen ist kein Problem und für den Worker gibt es eine Lokalversion. Jedoch tretten Benutzerspezifische Probleme auf und ich muss die Spooler -> worker direkt debuggen.
Also Grob aufgezeigt: Spooler -> Process.Start(Worker) --> Worker.exe gestartet und rödelt rum.
Die Daten holt sich der Worker via Pipe vom Spooler.
D.h. ich müsste beim Debuggen vom Spooler in den Worker Prozess reindebuggen können.
Ist das überhaupt möglich?
(Quellcode von beiden Programmen sind in der selben Mappe)
LG
In Visual Studio kannst du im Menü "Debug" > "Attach to process" den Debugger an weitere Prozesse hängen.
//edit:
Manchmal lohnt es sich dabei ein
#if DEBUG
while (!Debugger.IsAttached)
{
Thread.Sleep(100);
}
Console.WriteLine("Debugger attached");
#endif
in den Process einzubauen, damit er nicht "wegrennt" und du Zeit zum Attachen hast.
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
Hallo Grumbler85,
da gibts ab .net 4.0 mit SpinWait ein nette Lösung:
#if DEBUG
SpinWait.SpinUntil(()=> Debugger.IsAttached);
Console.WriteLine("Debugger attached");
#endif
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"