“(gdb)运行”在qemu模拟arm架构上运行可执行文件时崩溃

时间:2017-03-03 09:56:54

标签: c linux gdb arm qemu

这是我的第一条消息,我正在给你写信,因为这次我无法让我解决这个问题。

我正在学习关于gdb的课程。在后面的课程中,本课程将介绍ARM体系结构的调试,因此我提供了一个允许我模拟这种情况的设置。

我目前的设置由:

组成
  • Windows 10:物理主机
    • Ubuntu 12.04.5 LTS:来自Windows 10上的Oracle Virtual Box的访客操作系统
      • Linux debian-armel 2.6.32-5-versatile:来自ubuntu的qemu 2.8.0的客户端操作系统

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 ]---

有人可以指点我解决这个问题的方向吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

不是我的回答,而是要将问题标记为已关闭:

  

这可能是来宾内核中的一个错误(虽然不一定如此),所以   我首先尝试使用比2.6.32更新的内核   现在已经快八岁了。 - Peter Maydell 3月3日和17日13:14