我正在研究一个班级项目(不用担心,这个问题不是家庭作业),最近从部门机器转移到我自己的机器上。 该项目旨在构建一个简单的操作系统。为了使任务更容易,我们提供了将gdb“附加”到我们程序运行的QEMU的功能。在没有在我的计算机上附加gdb的情况下运行此程序可以正常工作,但是当我开始尝试使用gdb时它运行不正常。 需要注意的主要事项(我认为)是它在部门计算机上运行良好(gdb 7.4.1-debian)但在我的(7.6.1-ubuntu)上运行不正确。
我得到的与python有关的错误是gdb扩展是用python编写的,但似乎找不到它们。我也遇到语法错误。该程序的运行如下:
/usr/bin/qemu-system-i386
GNU gdb (GDB) 7.6.1-ubuntu
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/alfonso/course/cs167/weenix/kernel/weenix.dbg...done.
之后它会挂起一点,然后给我这个错误:
inittmp.gdb:1: Error in sourced command file:
localhost:1234: Connection timed out.
Traceback (most recent call last):
File "/home/alfonso/course/cs167/weenix/kernel/mm/memcheck.py", line 5, in <module>
import weenix
ImportError: No module named 'weenix'
File "/home/alfonso/course/cs167/weenix/kernel/mm/page.py", line 15
print "pagesize: {0}".format(weenix.kmem.pagesize())
^
SyntaxError: invalid syntax
File "/home/alfonso/course/cs167/weenix/kernel/mm/slab.py", line 40
print "{1:<{0}} {3:>{2}} {5:>{4}} {7:>{6}}".format(
^
SyntaxError: invalid syntax
File "/home/alfonso/course/cs167/weenix/kernel/proc/proc.py", line 17
print weenix.proc.str_proc_tree()
^
SyntaxError: invalid syntax
Traceback (most recent call last):
File "/home/alfonso/course/cs167/weenix/kernel/util/debug.py", line 3, in <module>
import weenix
ImportError: No module named 'weenix'
Traceback (most recent call last):
File "/home/alfonso/course/cs167/weenix/kernel/util/list.py", line 3, in <module>
import weenix
ImportError: No module named 'weenix'
Breakpoint 1 at 0xc0008f04: file util/debug.c, line 190.
Breakpoint 2 at 0xc0007016: file main/kmain.c, line 298.
Breakpoint 3 at 0xc0006cf3: file main/kmain.c, line 129.
init.gdb:6: Error in sourced command file:
The program is not being run.
当然,导入错误和无效语法让我最初考虑我的PYTHONPATH和/或包设置,但这是正常工作(测试它)。我唯一能想到的是我遇到了一些我忽略的配置问题。
如果你想要我,我可以发布bash脚本,.gdb文件和其他文件,但由于这在部门计算机上工作正常,我怀疑这是问题所在。
Python版本:(部门:“2.7.3”,我:“2.7.5 +”)
编辑: 经过一番搜索,我意识到最新的Linux Mint(petra)使用gdb将python解释为python3。我目前正在寻找一种配置gdb的方法,但由于我之前从未这样做过,如果有人能指导我这样做,我将不胜感激。
答案 0 :(得分:1)
您使用Python 3进行此调试模式。
$ python3 test33.py
File "test33.py", line 1
print "hello".format()
^
SyntaxError: invalid syntax
确保按照说法使用Python 2.
答案 1 :(得分:0)
我也做这个功课。 (我猜weenix太常用于OS课程。)
关于&#34;导入weenix&#34;问题,因为weenix的python脚本不在gdb的数据目录中。当使用gdb和python时,这个目录将自动添加到python的PATH中。因此,只需要输入&#34; weenix / python / weenix&#34;在数据目录/ python 下。至于我,它是 / usr / shared / gdb / 。
与weenix玩得开心!