Dies ist der Befehl vgdb, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
vgdb – Vermittler zwischen Valgrind und GDB oder einer Shell
ZUSAMMENFASSUNG
vgdb [Optionen]
BESCHREIBUNG
vgdb („Valgrind to GDB“) wird als Vermittler zwischen Valgrind und GDB oder einer Shell verwendet.
Es gibt zwei Nutzungsmodi:
1. Als eigenständiges Dienstprogramm wird es über eine Shell-Befehlszeile zum Senden von Überwachungsbefehlen verwendet
zu einem Prozess, der unter Valgrind läuft. Für diese Verwendung müssen die vgdb-OPTION(en) vorhanden sein
gefolgt vom zu sendenden Monitorbefehl. Um mehr als einen Befehl zu senden, trennen Sie diese
an. Nach der Installation können Sie HEIC-Dateien mit der -c .
2. In Kombination mit GDB „target remote |“ Befehl wird es als Relaisanwendung verwendet
zwischen GDB und dem Valgrind-GDB-Server. Für diese Verwendung können nur OPTION(en) angegeben werden,
aber es kann kein BEFEHL gegeben werden.
OPTIONAL
--pid=
Gibt die PID des Prozesses an, zu dem vgdb eine Verbindung herstellen muss. Diese Option ist nützlich
für den Fall, dass mehr als ein Valgrind-GDB-Server verbunden werden kann. Wenn die --pid Argument ist
nicht angegeben und mehrere Valgrind-gdbserver-Prozesse ausgeführt werden, wird vgdb dies melden
Liste solcher Prozesse aufrufen und dann beenden.
--vgdb-Präfix
Muss sowohl an Valgrind als auch an vgdb angegeben werden, wenn Sie das Standardpräfix für ändern möchten
Die FIFOs (Named Pipes), die für die Kommunikation zwischen dem Valgrind-GDB-Server und verwendet werden
vgdb.
--wait=
Weist vgdb an, nach verfügbaren Valgrind-GDB-Servern für die angegebene Anzahl zu suchen
Sekunden. Dadurch ist es möglich, einen vgdb-Prozess zu starten, bevor Valgrind gestartet wird
gdbserver, mit dem die vgdb kommunizieren soll. Diese Option ist nützlich, wenn
verwendet in Verbindung mit a --vgdb-Präfix Das ist einzigartig für den Prozess, den Sie durchführen möchten
warten auf. Auch wenn Sie das verwenden --Warten Argument im GDB-Befehl „target remote“, Sie
muss den GDB-Remotetimeout auf einen Wert setzen, der größer als der Argumentwert --wait ist. Sehen
ganz ohne irgendetwas tun oder drücken zu müssen. --max-invoke-ms (direkt unten) finden Sie ein Beispiel für die Einstellung des Remotetimeout-Werts.
--max-invoke-ms=
Gibt die Anzahl der Millisekunden an, nach denen vgdb den Aufruf von erzwingt
gdbserver eingebettet in Valgrind. Der Standardwert beträgt 100 Millisekunden. Ein Wert von 0
deaktiviert den erzwungenen Aufruf. Der erzwungene Aufruf wird verwendet, wenn vgdb mit a verbunden ist
Valgrind gdbserver und der Valgrind-Prozess haben alle seine Threads in einem System blockiert
Anruf.
Wenn Sie einen großen Wert angeben, müssen Sie möglicherweise den GDB-Wert „remotetimeout“ erhöhen
von seinem Standardwert von 2 Sekunden. Sie sollten sicherstellen, dass das Timeout (in Sekunden)
ist größer als die --max-invoke-ms Wert. Zum Beispiel, z --max-invoke-ms=5000, des
Der folgende GDB-Befehl ist geeignet:
(gdb) set remotetimeout 6
--cmd-time-out=
Weist eine eigenständige vgdb an, sich zu beenden, wenn der Valgrind-gdbserver, mit dem sie verbunden ist, dies tut
Einen Befehl nicht innerhalb der angegebenen Anzahl von Sekunden verarbeiten. Der Standardwert ist bis
niemals eine Auszeit.
--port=
Weist vgdb an, TCP/IP zu verwenden und auf dem angegebenen Port Nr. auf GDB zu warten
um eine Pipe zur Kommunikation mit GDB zu verwenden. Die Verwendung von TCP/IP ermöglicht die Ausführung von GDB auf einem
Computer und Debuggen eines Valgrind-Prozesses, der auf einem anderen Zielcomputer ausgeführt wird. Beispiel:
# Starten Sie auf dem Zielcomputer Ihr Programm unter valgrind mit
valgrind --vgdb-error=0 prog
# und dann in einer anderen Shell Folgendes ausführen:
vgdb --port=1234
Führen Sie auf dem Computer, der GDB hostet, den folgenden Befehl aus:
GDB-Prog
(gdb) Ziel-Remote-Targetip:1234
Dabei ist targetip die IP-Adresse oder der Hostname des Zielcomputers.
-c
Um einer eigenständigen vgdb mehr als einen Befehl zu erteilen, trennen Sie die Befehle durch eine Option
-c. Beispiel:
vgdb v.set log_output -c Leak_check beliebig
-l
Weist eine eigenständige vgdb an, die Liste der Valgrind-gdbserver-Prozesse zu melden
laufen und dann beenden.
-D
Weist eine eigenständige vgdb an, den Status des von der verwendeten gemeinsam genutzten Speichers anzuzeigen
Valgrind gdbserver. vgdb wird beendet, nachdem der freigegebene Valgrind-GDB-Server angezeigt wurde
Speicherzustand.
-d
Weist vgdb an, eine Debugging-Ausgabe zu erstellen. Geben Sie mehrere -d args, um die zu erhöhen
Ausführlichkeit. Beim Geben -d Wenn Sie eine Relay-vgdb verwenden, leiten Sie den Standardfehler besser um
(stderr) von vgdb in eine Datei, um eine Interaktion zwischen GDB und der vgdb-Debugging-Ausgabe zu vermeiden.
Verwenden Sie vgdb online über die Dienste von onworks.net