Qemu-Grundlagen – VSCode-Konfiguration, GDB-Debugging

VSCode konfiguriert das GDB-Debugging

qemu-Basics – Aufbau einer Bare-Metal-Debugging-Umgebung
Im vorherigen Abschnitt haben wir die GDB-Befehlszeile direkt zum Debuggen verwendet. In diesem Abschnitt wird erläutert, wie Sie VSCode zum Debuggen verwenden.

Installieren Sie das VSCode-Plug-in

Fügen Sie hier eine Bildbeschreibung ein

Erstellung der Debug-Datei

Fügen Sie hier eine Bildbeschreibung ein
Wählen Sie Node.js aus. Im aktuellen Arbeitsbereich wird eine launch.json-Datei erstellt.
Fügen Sie hier eine Bildbeschreibung ein

Debug-Konfiguration

Platzierungsskript

{
    
    
    "version": "0.2.0",
    "configurations": [
        {
    
    
            "name": "qemu_bare",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/qemu_code/bare/example/0020_mmu/bsp.elf",
            "args": [],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}/qemu_code/bare",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "/home/tyustli/cross_tool/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gdb",
            "miDebuggerServerAddress": "localhost:1234",
        }
    ]
}
  • Version: Gibt die Versionsnummer an und muss im Allgemeinen nicht geändert werden
  • Konfigurationen: Enthält spezifische Konfigurationsinformationen für jede Debugging-Aufgabe.
  • Name: Der Name der Debug-Aufgabe, der in den Dropdown-Feldern „Ausführen“ und „Debuggen“ angezeigt werden kann. Das ist der Ort im Bild unten.
  • Typ: Gibt den Compilertyp an. Wenn arm-none-gcc verwendet wird, geben Sie cppdgb ein.
  • Anfrage: Es gibt zwei Arten: Starten und Anhängen. Ersteres bedeutet, dass VSCode das Programm öffnet und dann das Debuggen startet. Letzteres bedeutet, dass Sie das Programm geöffnet und dann zum Debuggen eine Verbindung zum internen Debugging-Protokoll von Node.js hergestellt haben. Wählen Sie im Allgemeinen „Starten“.
  • args: Befehlszeilenargumente, die an das Programm übergeben werden. Es kann beispielsweise das Eingabedokument für das Debuggen sein. Es wird empfohlen, absolute Pfade zu verwenden.
  • stopAtEntry: optionaler Parameter. Bei „true“ sollte der Debugger am Einstiegspunkt des Zielprogramms anhalten. Bei „false“ stoppt er nicht am Einstiegspunkt des Zielprogramms, sondern wird direkt ausgeführt, bis ein Haltepunkt erreicht wird.
  • cwd: cd zum obersten Verzeichnis des Projekts. Bezieht sich im Allgemeinen auf das Verzeichnis, in dem sich das zu debuggende Programm befindet.
  • Umgebung: Umgebungsvariablen, die dem Programm hinzugefügt werden sollen {"name": "config", "value": "Debug"}.
  • externalConsole: true: Konsole starten; false: Anzeige in der integrierten Konsole von vscode
  • MIMode: Debugging-Modus, geben Sie als Debugger GDB oder LLDB usw. an.
  • miDebuggerPath: Legen Sie den Debugger-Pfad fest
  • miDebuggerServerAddress: Debugger-Server (Gerät), der für Remote-Debugging-Verbindungen verwendet wird

qemu-Startskript

qemu-system-arm -machine mcimx6ul-evk -kernel bsp.elf -serial stdio -S -s

qemu verfügt über mehr Startoptionen -s -S, was bedeutet, dass es nach dem Start anhält und auf die GDB-Verbindung wartet. Starten Sie zuerst qemu, bevor Sie mit dem Debuggen beginnen, und lassen Sie es auf die GDB-Verbindung warten.

Beginnen Sie mit dem Debuggen

Fügen Sie hier eine Bildbeschreibung ein

Fehlerbericht eins

Wenn das Node.js-Modul nicht gefunden werden kann, verwenden Sie den folgenden Befehl, um es zu installieren
Node.js-Installation

 sudo apt-get install nodejs

Fehlerbericht zwei

error while loading shared libraries: libncursesw.so.5: cannot open shared object file: No such file or directory

lösen

sudo apt install libncursesw5-dev
sudo apt install apt-file
sudo apt-file update
sudo apt-file find libncursesw.so.5
sudo apt install libncursesw5

Fehlerbericht drei

error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

lösen

sudo apt-get install libpython2.7

Debugging-Schnittstelle

Fügen Sie hier eine Bildbeschreibung ein

Führen Sie den GDB-Befehl aus

Geben Sie beispielsweise -exec + GDB 命令 in die Debugging-Konsole ein
Fügen Sie hier eine Bildbeschreibung ein

Demontage ansehen

Geben Sie die Debug-Konsole ein

-exec disassemble /m

Fügen Sie hier eine Bildbeschreibung ein

Haltepunkt

Fügen Sie hier eine Bildbeschreibung ein

Kernregister anzeigen

Fügen Sie hier eine Bildbeschreibung ein

Variablen anzeigen

Referenzlink

Guess you like

Origin blog.csdn.net/tyustli/article/details/133829652