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

So installieren und implementieren Sie einen FTP-Image-Server unter Linux

Lesen Sie das Tutorial zum Einrichten eines FTP-S...

Lizenzschlüssel für VMware Workstation Pro 16 mit Nutzungs-Tutorial

VMware Workstation ist eine leistungsstarke virtu...

Implementierung der Validierung mehrerer Elemente im Formular

Im Projekt werden häufig Formulartests durchgefüh...

Der Aufruf der Suchmaschine auf der Seite erfolgt am Beispiel von Baidu

Heute ist mir plötzlich eingefallen, dass es cool ...

Detaillierte Erläuterung der vier Transaktionsisolationsebenen in MySQL

Die Testumgebung dieses Experiments: Windows 10+c...

Verhindern von SQL-Injection in Webprojekten

Inhaltsverzeichnis 1. Einführung in SQL-Injection...