我正在学习一门关于gdb的课程。在后面的课程中,本课程包括在ARM架构上进行调试,因此我将介绍一个允许我模拟这种情况的设置。
我目前的设置包括:
ARM Debian的图像来自https://people.debian.org/~aurel32/qemu/armel/
这个图像是用
qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.img-2.6.32-5-versatile -hda debian_squeeze_armel_standard.qcow2 -append "root=/dev/sda1" -m 256 -redir tcp:2222::22我修改了sources.list和apt.conf,使其易于工作,因为发行版已经非常过时了。我更新升级并安装了gcc和gdb。
在尝试调试时会出现问题;我可以在gdb中加载可执行文件:
root@debian-armel:~/video-11/video-11# file ./main
./main: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped但是,当我试图在gdb中运行它时,我会收到这条消息,执行挂起,直到我能够从另一个控制台杀死gdb进程:
------------[ cut here ]------------
WARNING: at /build/linux-2.6-fIxTVd/linux-2.6-2.6.32/debian/build/source_armel_none/kernel/sched.c:2628 wake_up_process+0x2c/0x48()
Modules linked in: loop sg smc91x sr_mod mii cdrom psmouse evdev ext3 jbd mbcache sd_mod crc_t10dif sym53c8xx scsi_transport_spi scsi_mod
[<c002b068>] (unwind_backtrace+0x0/0xdc) from [<c0046f88>] (warn_slowpath_common+0x4c/0x80)
[<c0046f88>] (warn_slowpath_common+0x4c/0x80) from [<c00446f0>] (wake_up_process+0x2c/0x48)
[<c00446f0>] (wake_up_process+0x2c/0x48) from [<c0026930>] (arch_ptrace+0x214/0x4bc)
[<c0026930>] (arch_ptrace+0x214/0x4bc) from [<c00508d8>] (sys_ptrace+0x9c/0x164)
[<c00508d8>] (sys_ptrace+0x9c/0x164) from [<c0024ec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace 98ab50bc781b314f ]---我怎样才能解决这个问题?
发布于 2018-02-27 17:12:08
这不是我的答案,而是为了使问题被标记为结束:
这可能是来宾内核中的一个bug (虽然不一定是这样),所以我首先尝试使用一个比2.6.32更新的内核,它现在已经有将近8年的历史了。-彼得·梅德尔3月3日13时14分
https://stackoverflow.com/questions/42575737
复制相似问题