Rumah > Artikel > Operasi dan penyelenggaraan > Kaedah konfigurasi biasa untuk menggunakan GDB untuk menyahpepijat pemasang ARM terbenam di bawah Linux
Kaedah konfigurasi biasa untuk menggunakan GDB untuk menyahpepijat pemasang ARM terbenam di bawah Linux
Abstrak:
Dalam pembangunan sistem terbenam, pemproses seni bina ARM digunakan secara meluas dalam pelbagai bidang. Untuk menyahpepijat pemasang ARM terbenam, kita boleh menggunakan GNU Debugger (GDB). Artikel ini akan memperkenalkan kaedah biasa mengkonfigurasi GDB untuk menyahpepijat pemasang ARM terbenam dalam persekitaran Linux dan memberikan contoh kod.
.global _start .extern printf .section .data message: .asciz "Hello, World! " .section .text _start: ldr r0, =message bl printf mov r7, #1 swi 0
Kod di atas mentakrifkan label global _start
dan fungsi luaran printf
. Kemudian, rentetan mesej
ditakrifkan dalam bahagian .data
dan ldr
dan digunakan dalam <code>.text Arahan >bl
melaksanakan output rentetan. Dua baris kod terakhir menggunakan perintah mov
dan swi
untuk keluar dari program. _start
和外部函数 printf
。然后,.data
段中定义了一个字符串 message
,.text
段中使用 ldr
和 bl
指令实现了字符串的输出。最后两行代码使用 mov
和 swi
指令退出程序。
arm-none-eabi-
,可以使用以下命令进行编译:$ arm-none-eabi-as -mcpu=cortex-m3 -o program.o program.s $ arm-none-eabi-ld -o program program.o
其中,-mcpu=cortex-m3
指定了目标处理器的类型。
$ gdb
然后,使用以下命令将可执行文件加载到GDB中:
(gdb) file program
(gdb) target remote localhost:1234
其中,localhost:1234
是目标设备的连接地址和端口号。这里假设使用了本地主机和默认端口号1234
arm-none-eabi-
, anda boleh menggunakan arahan berikut untuk menyusun: (gdb) info registers
-mcpu=cortex- m3
ditentukan Jenis pemproses sasaran. (gdb) step
(gdb) next
Konfigurasikan peranti sasaran untuk GDB
Kami juga perlu mengkonfigurasi GDB untuk menyambung ke peranti sasaran untuk nyahpepijat. Parameter penyambung boleh ditetapkan menggunakan arahan berikut:(gdb) break main
di mana, localhost:1234
ialah alamat sambungan dan nombor port peranti sasaran. Ini mengandaikan bahawa localhost dan nombor port lalai 1234
digunakan.
Kini, kita boleh mula menyahpepijat pemasang. Berikut ialah beberapa contoh arahan penyahpepijatan GDB yang biasa digunakan:
(gdb) continue
(gdb) x/16x $sp
(gdb) print $r0
(gdb) list
Lihat kandungan memori:
(gdb) quitCetak nilai pembolehubah:
Atas ialah kandungan terperinci Kaedah konfigurasi biasa untuk menggunakan GDB untuk menyahpepijat pemasang ARM terbenam di bawah Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!