MDbg.exe (.NET Framework-Befehlszeilendebugger) - .NET Framework (2024)

ap[rocess] [nummer]Wechselt zu einem anderen debuggten Prozess oder druckt verfügbare Prozesse. Die Zahlen sind keine echten Prozess-IDs (PID), sondern eine 0-indizierte Liste.a[ttach] [pid]Fügt an einen Prozess an oder druckt verfügbare Prozesse.b[reak] [ClassName.Method | FileName:LineNo]Legt einen Haltepunkt bei der angegebenen Methode fest. Module werden nacheinander überprüft.

- break FileName:LineNo legt einen Breakpoint an einer Position in der Quelle fest.
- break~zahl legt einen Breakpoint an einem Symbol fest, das kurz vorher mit dem x-Befehl angezeigt wurde.
- break modul!klassenname.methode+IlOffset legt einen Breakpoint am vollqualifizierten Speicherort fest.

block[ingObjects]Zeigt Monitorsperren an, die blockierende Threads sind.ca[tch] [ausnahmentyp]Bewirkt, dass der Debugger nicht nur bei Ausnahmefehlern, sondern bei allen Ausnahmen unterbricht.cl[earException]Markiert die aktuelle Ausnahme als behandelt, sodass die Ausführung fortgesetzt werden kann. Wenn die Ursache der Ausnahme nicht behandelt wurde, kann die Ausnahme erneut schnell ausgelöst werden.conf[ig] [optionswert]Zeigt alle konfigurierbaren Optionen an und zeigt, wie die Optionen ohne optionale Werte aufgerufen werden. Bei Angabe der Option wird value als aktuelle Option festgelegt. Die folgenden Optionen sind derzeit verfügbar:

- extpath legt den Pfad fest, um Erweiterungen zu suchen, wenn der load-Befehl verwendet wird.
- extpath+ fügt einen Pfad zum Laden von Erweiterungen hinzu.

del[ete]Löscht einen Haltepunkt.de[tach]Trennt von einem debuggten Prozess.d[own] [frames]Verschiebt den aktiven Stapelrahmen nach unten.echoGibt eine Meldung an die Konsole weiter.enableNotif[ication] typeName 0|1Aktiviert (1) oder deaktiviert (0) benutzerdefinierte Benachrichtigungen für den angegebenen Typ.ex[it] [exitcode]Beendet die Shell "MDbg.exe" und gibt optional den Exitcode des Prozesses an.fo[reach] [andererBefehl]Führt einen Befehl für alle Threads aus. OtherCommand ist ein gültiger Befehl, der für einen Thread ausgeführt wird. foreach OtherCommand führt denselben Befehl für alle Threads aus.f[unceval] [-ad Nr] Funktionsname [Argumente... ]Führt eine Funktionsauswertung für den derzeit aktiven Thread aus, wobei Funktionsname die auszuwertende Funktion ist. Der Funktionsname muss vollqualifiziert sein, einschließlich Namespaces.

Die -ad-Option gibt die Anwendungsdomäne an, die zum Auflösen der Funktion verwendet werden soll. Wird die -ad-Option nicht angegeben, ist die Standardeinstellung der Anwendungsdomäne für die Auflösung die Anwendungsdomäne, in der sich der für die Funktionsauswertung verwendete Thread befindet.

Wenn die ausgewertete Funktion nicht statisch ist, sollte der erste übergebene Parameter ein this-Zeiger sein. Alle Anwendungsdomänen werden nach Argumenten für die Funktionsauswertung durchsucht.

Um einen Wert aus einer Anwendungsdomäne anzufordern, stellen Sie der Variablen den Modul- und Anwendungsdomänennamen als Präfix voran, z. B. funceval -ad 0 System.Object.ToString hello.exe#0!MyClass.g_rootRef. Mit diesem Befehl wird die Funktion System.Object.ToString in der Anwendungsdomäne 0 ausgewertet. Da die ToString-Methode eine Instanzfunktion ist, muss der erste Parameter ein this-Zeiger sein.

g[o]Bewirkt, dass das Programm fortgesetzt wird, bis ein Haltepunkt erreicht wird, das Programm beendet wird oder ein Ereignis das Beenden des Programms verursacht (z. B. ein Ausnahmefehler).h[elp] [befehl]

-oder-

? [Befehl]

Zeigt eine Beschreibung aller Befehle oder eine ausführliche Beschreibung eines angegebenen Befehls an.ig[nore] [ereignis]Bewirkt, dass der Debugger nur bei Ausnahmefehlern anhält.int[ercept] framezahlFührt einen Rollback für den Debugger zu einer angegebenen Framenummer aus.

Wenn der Debugger auf eine Ausnahme trifft, verwenden Sie diesen Befehl, um für den Debugger einen Rollback zur angegebenen Framenummer auszuführen. Sie können den Programmzustand mit dem set-Befehl ändern und mit dem go-Befehl fortfahren.

k[ill]Hält den aktiven Prozess an.l[ist] [modules | appdomains | assemblies]Zeigt die geladenen Module, Anwendungsdomänen oder Assemblys an.lo[ad] assemblynameLädt eine Erweiterung auf folgende Weise: Die angegebene Assembly wird geladen und dann wird versucht, die statische Methode LoadExtension vom Typ Microsoft.Tools.Mdbg.Extension.Extension auszuführen.log [Ereignistyp]Legt die zu protokollierenden Ereignisse fest oder zeigt diese an.mo[de] [option an/aus]Legt andere Debuggeroptionen fest. Verwenden Sie mode ohne Optionen, um eine Liste der Debugmodi und ihre aktuellen Einstellungen abzurufen.mon[itorInfo] bildschirmverweisZeigt Informationen zu Objektbildschirmsperren an.newo[bj] typname [argumente... ]Erstellt ein neues Objekt vom Typ typname.n[ext]Führt Code aus und wechselt in die nächste Zeile (auch wenn die nächste Zeile viele Funktionsaufrufe enthält).Opendump pathToDumpFileÖffnet die angegebene Dumpdatei zum Debuggen.o[ut]Wechselt zum Ende der aktuellen Funktion.pa[th] [pfadname]Durchsucht den angegebenen Pfad nach den Quelldateien, wenn die Position in den Binärdateien nicht verfügbar ist.p[rint] [var] | [-d]Gibt alle Variablen im Bereich aus (print), gibt die angegebene Variable (print var) oder die Debuggervariablen (print-d) aus.printe[xception] [ -r]Druckt die letzte Ausnahme auf dem aktuellen Thread. Verwenden Sie die Option –r (rekursiv), um die InnerException-Eigenschaft für das Ausnahmeobjekt zu durchlaufen, um Informationen zur gesamten Ausnahmekette abzurufen.pro[cessenum]Zeigt die aktiven Prozesse an.q[uit] [exitcode]Beendet die Shell "MDbg.exe" und gibt optional den Exitcode des Prozesses an.re[sume] [* | [~]threadNumber]Setzt den aktuellen Thread oder den vom threadnummer-Parameter angegebenen Thread fort.

Wenn für den threadnummer-Parameter * angegeben wird oder die Threadnummer mit ~ beginnt, wird der Befehl auf alle Threads mit Ausnahme des durch threadnummer angegebenen Threads angewendet.

Das Fortsetzen eines nicht unterbrochenen Threads hat keine Auswirkungen.

r[un] [-d(ebug) | -o(ptimize) |-enc] [[path_to_exe] [args_to_exe]]Beendet den aktuellen Prozess, sofern vorhanden, und startet einen neuen. Wenn kein ausführbares Argument übergeben wird, führt dieser Befehl das Programm aus, das zuvor mit dem run-Befehl ausgeführt wurde. Wird das ausführbare Argument bereitgestellt, wird das angegebene Programm mit den optional angegebenen Argumenten ausgeführt.

Wenn Ladeereignisse für Klassen und Module sowie Threadstartereignisse ignoriert werden (dies entspricht der Standardeinstellung), wird das Programm bei der ersten ausführbaren Anweisung des Hauptthreads angehalten.

Sie können den Debugger zur JIT-Kompilierung (Just-In-Time) des Codes zwingen, indem Sie eines der drei folgenden Flags verwenden:

- -d ( ebug ) deaktiviert Optimierungen. Dies ist die Standardeinstellung für "MDbg.exe".
- -o ( ptimize ) erzwingt eine Ausführung des Codes, die der Ausführung außerhalb des Debuggers ähnelt. Allerdings wird das Debuggen dabei auch erschwert. Dies ist die Standardeinstellung für die Verwendung außerhalb des Debuggers.
- -enc aktiviert die Funktion „Bearbeiten und Fortfahren“ beeinträchtigt jedoch die Leistung.

Set Variable=WertÄndert den Wert einer im Gültigkeitsbereich befindlichen Variable.

Sie können auch eigene Debuggervariablen erstellen und ihnen Verweiswerte innerhalb der Anwendung zuweisen. Diese Werte fungieren als Handles zum ursprünglichen Wert, und auch der ursprüngliche Wert liegt außerhalb des Bereichs. Alle Debuggervariablen müssen mit $ beginnen (z. B. $var). Löschen Sie diese Handles, indem Sie sie mit dem folgenden Befehl auf keinen Wert festlegen:

set $var=

Setip [-il] zahlLegt den aktuellen Anweisungszeiger (Instruction Pointer, IP) in der Datei auf die angegebene Position fest. Wenn Sie die -il Option angeben, stellt die Zahl einen CIL-Offset (Common Intermediate Language) in der Methode dar. Andernfalls stellt die Zahl eine Quellzeilennummer dar.sh[ow] [zeilen]Gibt die Anzahl der anzuzeigenden Zeilen an.s[tep]Wechselt mit der Ausführung in die nächste Funktion der aktuellen Zeile oder wechselt zur nächsten Zeile, wenn keine Funktion vorhanden ist, zu der gewechselt werden kann.su[spend] [* | [~]threadNumber]Hält den aktuellen Thread oder den vom threadnummer-Parameter angegebenen Thread an. Wenn threadnummer als * angegeben wird, wird der Befehl auf alle Threads angewendet. Beginnt die Threadnummer mit ~, wird der Befehl für alle Threads mit Ausnahme des durch threadnummer angegebenen Threads angewendet. Unterbrochene Threads werden von der Ausführung ausgeschlossen, wenn der Prozess entweder durch den go-Befehl oder den step-Befehl ausgeführt wird. Wenn sich keine nicht unterbrochenen Threads im Prozess befinden und Sie den go-Befehl ausgeben, wird der Prozess nicht fortgesetzt. Drücken Sie in diesem Fall STRG+C, um den Prozess zu beeinflussen.sy[mbol] befehlsname [befehlswert]Gibt einen der folgenden Befehle an:

- symbol path ["value"] – Zeigt den aktuellen Symbolpfad an oder legt diesen fest.
- symbol addpath "value" – Fügt dem aktuellen Symbolpfad den Wert hinzu.
- symbol reload ["module"] – Lädt entweder alle Symbole oder die Symbole für das angegebene Modul erneut.
- symbol list [module] – Zeigt die derzeit geladenen Symbole für alle Module oder das angegebene Modul an.

t[hread] [neuerThread] [-nick spitzname]Der Thread-Befehl ohne Parameter zeigt alle verwalteten Threads im aktuellen Prozess an. Threads werden in der Regel durch ihre Threadnummern bezeichnet. Wurde dem Thread jedoch ein Spitzname zugewiesen, wird stattdessen der Spitzname angezeigt. Sie können den -nick-Parameter verwenden, um einem Thread einen Spitznamen zuzuweisen.

- thread -nick threadName weist dem aktuell ausgeführten Thread einen Spitznamen zu.

Spitznamen dürfen nicht aus Zahlen bestehen. Wenn dem aktuellen Thread bereits ein Spitzname zugewiesen wurde, wird der alte Spitzname durch den neuen ersetzt. Wenn der neue Spitzname eine leere Zeichenfolge ("") ist, wird der Spitzname für den aktuellen Thread gelöscht und dem Thread wird kein neuer Spitzname zugewiesen.

u[p]Verschiebt den aktiven Stapelrahmen nach oben.uwgc[handle] [var] | [address]Druckt die von einem Handle nachverfolgte Variable. Das Handle kann mit dem Namen oder der Adresse angegeben werden.whenZeigt die derzeit aktiven when-Anweisungen an.

beim Löschen aller | num [ [numnum ...]] – Löscht die when-Anweisung, die durch die Zahl angegeben wird, oder alle when-Anweisungen, wenn all angegeben wird.

wenn stopReason [specific_condition] [cmd[cmd ...cmd] ] – Der stopReason-Parameter kann einer der folgenden sein:

StepComplete, ProcessExited, , ThreadCreated, BreakpointHit, ModuleLoaded, AssemblyLoadedClassLoaded, , AssemblyUnloaded, , UnhandledExceptionThrownAttachCompleteAsyncStopExceptionThrownControlCTrappedEvalCompleteEvalExceptionUserBreak, , . . NativeStopRemapOpportunityReached

specific_condition kann einen der folgenden Werte haben:

- zahl – Löst für ThreadCreated und BreakpointHit nur eine Aktion bei Beenden durch eine Thread-ID/Haltepunktnummer mit demselben Wert aus.
– [!]name – Löst für ModuleLoaded, ClassLoaded, AssemblyLoaded, AssemblyUnloaded, ExceptionThrown und UnhandledExceptionThrown nur eine Aktion aus, wenn der Name dem Namen von stopGrund entspricht.

specific_condition muss für andere Werte von stopGrund leer sein.

w[here] [-v] [-c Tiefe] [threadID]Zeigt Debuginformationen über Stapelrahmen an.

– Die -v-Option liefert ausführliche Informationen über jeden angezeigten Stapelrahmen.
– Durch Angeben einer Zahl für depth wird die Anzahl der angezeigten Frames beschränkt. Verwenden Sie den all-Befehl, um alle Frames anzuzeigen. Der Standard ist 100.
– Wenn Sie den threadID-Parameter angeben, können Sie steuern, welcher Thread dem Stapel zugeordnet wird. Der Standardwert ist nur der aktuelle Thread. Verwenden Sie den all-Befehl, um alle Threads abzurufen.

x [-cnrsymbole] [modul[!muster]]Zeigt Funktionen an, die dem pattern für ein Modul entsprechen.

Wenn nrsymbole angegeben wird, wird die Ausgabe auf die festgelegte Anzahl beschränkt. Wenn ! (das einen regulären Ausdruck angibt) für muster nicht angegeben wird, werden alle Funktionen angezeigt. Wenn modul nicht angegeben wird, werden alle geladenen Module angezeigt. Symbole ( ~# ) können verwendet werden, um Haltepunkte mit dem break-Befehl festzulegen.

MDbg.exe (.NET Framework-Befehlszeilendebugger) - .NET Framework (2024)
Top Articles
Metropolitan State University Of Denver Athletics
‘Everything concerned me’: Rampant Cats through to prelim final after Port turn in another finals shocker
Mackenzie Rosman Leaked
oklahoma city for sale "new tulsa" - craigslist
Nm Remote Access
Optimal Perks Rs3
27 Places With The Absolute Best Pizza In NYC
Myunlb
Morgan Wallen Pnc Park Seating Chart
Jet Ski Rental Conneaut Lake Pa
Summoners War Update Notes
Breakroom Bw
Flower Mound Clavicle Trauma
fort smith farm & garden - craigslist
Conscious Cloud Dispensary Photos
Army Oubs
SF bay area cars & trucks "chevrolet 50" - craigslist
Apple Original Films and Skydance Animation’s highly anticipated “Luck” to premiere globally on Apple TV+ on Friday, August 5
Craigslist Lakeville Ma
Project, Time & Expense Tracking Software for Business
Adt Residential Sales Representative Salary
Parc Soleil Drowning
1 Filmy4Wap In
Avatar: The Way Of Water Showtimes Near Maya Pittsburg Cinemas
Booknet.com Contract Marriage 2
Access a Shared Resource | Computing for Arts + Sciences
Maine Racer Swap And Sell
Ascensionpress Com Login
Sams Gas Price Sanford Fl
950 Sqft 2 BHK Villa for sale in Devi Redhills Sirinium | Red Hills, Chennai | Property ID - 15334774
Babydepot Registry
Ringcentral Background
Kacey King Ranch
Myra's Floral Princeton Wv
Solarmovie Ma
2016 Honda Accord Belt Diagram
Afspraak inzien
House Of Budz Michigan
Gary Lezak Annual Salary
11301 Lakeline Blvd Parkline Plaza Ctr Ste 150
Electronic Music Duo Daft Punk Announces Split After Nearly 3 Decades
Hireright Applicant Center Login
Craigslist Boats Dallas
Powerspec G512
How To Customise Mii QR Codes in Tomodachi Life?
Perc H965I With Rear Load Bracket
The Many Faces of the Craigslist Killer
Cult Collectibles - True Crime, Cults, and Murderabilia
Used Auto Parts in Houston 77013 | LKQ Pick Your Part
Fresno Craglist
Minecraft Enchantment Calculator - calculattor.com
E. 81 St. Deli Menu
Latest Posts
Article information

Author: Allyn Kozey

Last Updated:

Views: 6005

Rating: 4.2 / 5 (63 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Allyn Kozey

Birthday: 1993-12-21

Address: Suite 454 40343 Larson Union, Port Melia, TX 16164

Phone: +2456904400762

Job: Investor Administrator

Hobby: Sketching, Puzzles, Pet, Mountaineering, Skydiving, Dowsing, Sports

Introduction: My name is Allyn Kozey, I am a outstanding, colorful, adventurous, encouraging, zealous, tender, helpful person who loves writing and wants to share my knowledge and understanding with you.