Linux wird geladen, vmlinux wird debuggt

Linux wird geladen, vmlinux wird debuggt

Laden von Kernelsymbolen mit gdb

arm-eabi-gdb out/Ziel/Produkt/msm8625/obj/KERNEL_OBJ/vmlinux

Aktivieren Sie in der .config des Kernels DEBUG_INFO und DEBUG_VM

Fehlercode lokalisieren

(gdb) l * qrd7627a_add_io_devices+0x100
0xc07cd05c ist in qrd7627a_add_io_devices (/home/yejialong/GH700C/kernel/arch/arm/mach-msm/msm8x25/goso-msm7627a-io.c:1851).
1846 } sonst wenn (machine_is_msm8625q_skud() || machine_is_msm8625q_evbd()) {
1847 #ifndef CONFIG_CALA02
1848 Plattformgeräteregister(&pmic_mpp_leds_pdev_skud);
1849 #endif
1850 /* aktiviere den Skud-Blitz und die Taschenlampe durch den GPIO-LED-Treiber */
1851 Plattformgeräteregister(&gpio_flash_skud);
1852 } sonst wenn (Maschine_ist_msm8625q_skue()) {
1853 /* aktiviere die Skue-Taschenlampe durch den GPIO-LED-Treiber */
1854 Plattformgeräteregister(&gpio_flash_skue);
1855 }

Nachfolgend wird die Methode zum Laden der MTK-Plattform beschrieben. Unabhängig von der Plattform ist sie jedoch ähnlich und das Prinzip ist dasselbe.

weiqifa@weiqifa-Inspiron-3847:~/weiqifa/tm100$ ./prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin/arm-eabi-gdb ./out/target/product/tm100/obj/KERNEL_OBJ/vmlinux
GNU gdb (GDB) 7.3.1-gg2
Copyright (C) 2011 Free Software Foundation, Inc.
Lizenz GPLv3+: GNU GPL Version 3 oder höher <http://gnu.org/licenses/gpl.html>
Dies ist freie Software: Sie können sie beliebig ändern und weitergeben.
Es besteht KEINE GARANTIE, soweit gesetzlich zulässig. Geben Sie „Kopieren anzeigen“ ein.
und „Garantie anzeigen“ für Einzelheiten.
Dieses GDB wurde als „--host=x86_64-linux-gnu –target=arm-linux-android“ konfiguriert.
Anweisungen zum Melden von Fehlern finden Sie unter:
<http://source.android.com/source/report-bugs.html>...
Symbole werden aus /home/weiqifa/weiqifa/tm100/out/target/product/tm100/obj/KERNEL_OBJ/vmlinux gelesen … fertig.
(gdb)

Rockchip rk3399 - Debuggen von vmlinux

./prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-addr2line -f -e kernel/vmlinux
weiqifa@dev:~/rk3399_7in1$ ./prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-addr2line -f -e kernel/vmlinux ffffff8008459f3c
rk_iommu_domain_free
/data/weiqifa/rk3399_7in1/kernel/drivers/iommu/rockchip-iommu.c:1005 (Diskriminator 2)
weiqifa@dev:~/rk3399_7in1$

Tombstone-Debugging der RK-Plattform

./prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-addr2line -e ./out/target/product/rk3399_mid/symbols/system/lib/libspeexresampler.so 0x00002d54
/proc/self/cwd/external/speex/libspeex/resample.c:376

Verwenden Sie zuerst den Befehl arm-eabi-gdb, um dieses Ding zu finden, und suchen Sie dann nach vmlinux. Und meine Version arm-eabi-4.7/ kann verwendet werden. Das habe ich versucht.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Mehrere Möglichkeiten, Python-Programme im Linux-Hintergrund auszuführen
  • Erstellen und Ausführen von Linux-Shell-Skripten
  • Python verwendet Paramiko zum Betrieb von Linux
  • Implementierungsmethode von Android zum Ausführen von Shell-Skripten im Linux-Terminal, um das Protokoll der aktuell ausgeführten App direkt auszudrucken
  • So führen Sie Linux-Befehlsprogramme remote und stapelweise mit pyqt aus
  • Verwendung der Zabbix-API in einer Linux-Shell-Umgebung
  • So stellen Sie versehentlich gelöschte Nachrichtendateien unter Linux wieder her
  • Zusammenfassung der Lösungen für allgemeine Linux-Probleme
  • Detaillierte Analyse des Linux-Kernel-Makros container_of
  • Tipps zum Anzeigen von Verlaufsdatensätzen und Hinzufügen von Zeitstempeln in Linux

<<:  So implementieren Sie ein Glücksradspiel im WeChat-Applet

>>:  Detaillierte Erläuterung der MySQL-Existes- und Not-Existes-Beispiele

Artikel empfehlen

Detaillierte Erklärung der Lösung zur Bildverformung unter Flex-Layout

Flex-Layout ist heutzutage eine häufig verwendete...

Eine kurze Diskussion zum Problem von Daten mit Nullwerten in der MySQL-Datenbank

Standardmäßig akzeptiert MySQL das Einfügen von 0...

JavaScript-Dom-Objektoperationen

Inhaltsverzeichnis 1. Kern 1. Holen Sie sich den ...

Der gesamte Prozessbericht der Vue-Exportfunktion für Excel

Inhaltsverzeichnis 1. Front-End-Führungsprozess: ...

Detaillierter Prozessbericht der Nginx-Installation und -Konfiguration

Inhaltsverzeichnis 1 Einführung in nginx 1 Was is...

Zusammenfassung der benutzerdefinierten JavaScript-Objektmethoden

Inhaltsverzeichnis 1. Verwenden Sie Objekt, um ei...

Implementierung zum Erstellen benutzerdefinierter Images mit Dockerfile

Inhaltsverzeichnis Vorwort Einführung in Dockerfi...

Detaillierter Prozess zum Erstellen von MongoDB und MySQL mit Docker-Compose

Schauen wir uns die detaillierte Methode zum Erst...

Detaillierte Erklärung zur Verwendung von MySQL-Gruppenlinks

Gruppieren und Verknüpfen sind in MySQL die beide...

React antd realisiert dynamische Vergrößerung und Verkleinerung der Form

Beim Schreiben dynamischer Formulare bin ich zuvo...

Mehrere Möglichkeiten, Python-Programme im Linux-Hintergrund auszuführen

1. Die erste Methode besteht darin, den Befehl un...