Laden...

anderen Prozess aus Programm heraus debuggen

Erstellt von KrümelKuchen vor 12 Jahren Letzter Beitrag vor 12 Jahren 911 Views
K
KrümelKuchen Themenstarter:in
25 Beiträge seit 2011
vor 12 Jahren
anderen Prozess aus Programm heraus debuggen

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

G
538 Beiträge seit 2008
vor 12 Jahren

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)

K
KrümelKuchen Themenstarter:in
25 Beiträge seit 2011
vor 12 Jahren

vielen Dank für deine hilfe

LG

6.911 Beiträge seit 2009
vor 12 Jahren

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!"