这是我的第一条消息,我正在给你写信,因为这次我无法让我解决这个问题。
我正在学习关于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以允许apt工作,因为de distro已经过时了。我更新并升级并安装了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 ]---
有人可以指点我解决这个问题的方向吗?
提前致谢!
答案 0 :(得分:0)
不是我的回答,而是要将问题标记为已关闭:
这可能是来宾内核中的一个错误(虽然不一定如此),所以 我首先尝试使用比2.6.32更新的内核 现在已经快八岁了。 - Peter Maydell 3月3日和17日13:14