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

Lernen Sie schnell die MySQL-Grundlagen

Inhaltsverzeichnis SQL verstehen SELECT verstehen...

Zwei Möglichkeiten, den 30-Sekunden-Werbecode aus dem Youku-Video zu entfernen

Ich glaube, jeder kennt dieses Gefühl: Ein Video m...

Detaillierte Erklärung der MySQL-Gruppierung durch Optimierung

Inhaltsverzeichnis Standardausführungsprozess Opt...

Tutorial zur Installation von MYSQL5.7 aus dem OEL7.6-Quellcode

Laden Sie zunächst das Installationspaket von der...

Eine kurze Einführung in die Kernkenntnisse der VUE uni-app

Inhaltsverzeichnis Spezifikation a. Die Auslageru...

30 Tipps zum Schreiben von HTML-Code

1. HTML-Tags immer schließen Im Quellcode der vor...

Freigabe der Schritte zum SVN-Dienstsicherungsvorgang

Schritte zur Sicherung des SVN-Dienstes 1. Quells...

Tutorial zum Erstellen eines FTP-Servers in Ubuntu 16.04

Ubuntu 16.04 baut FTP-Server FTP installieren FTP...

Fallstudie zu den SQL ROW_NUMBER()- und OVER()-Methoden

Syntaxformat: row_number() über (Partition durch ...

JavaScript-Farbbetrachter

In diesem Artikelbeispiel wird der spezifische Ja...

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

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

Ein Artikel, der Ihnen hilft, jQuery-Animationen zu verstehen

Inhaltsverzeichnis 1. Steuern Sie die Anzeige und...

Der Button hat einen hässlichen grauen Rand. Wie kann ich ihn entfernen?

Ich habe den Dialog beim Schließen verwendet und e...