ubuntu16.04默认安装的bochs出现Fatal IO error

这个问题实际上非常奇怪,因为我的img只是一个简单的mbr而已,上面还什么都没有,就是hello world。但是在debuger界面点了continue之后,hello world是显示出来了,但是bochs挂了。

更加诡异的是,每次挂掉的时候,倒数第二个错误信息总是不同的。还好最后一个信息相同:

Debug: In file ../src/unix/threadpsx.cpp at line 261: 'pthread_mutex_destroy()' failed with error 0x00000010 (Device or resource busy).

看起来是一个互斥锁导致的异常。由于跟一般的bochs不同,这次默认安装的bochs自带gui,所以显示了一个gui的debuger:


而且这个gui的debuger,在运行的时候会不停刷新。看起来是实时显示寄存器的值的样子。同时,后台的debug log也会不停刷新各个寄存器的值。


嗯。。。猜测可能是因为bochs的这个图形化的debugger的代码有bug,或者后台刷寄存器值的代码有bug,因为这么高频率刷数据,难免锁乱来。

想想以前bochs都是命令行调试的,不知道为何这次用的是gui,猜测可能是因为默认安装的缘故。于是想用命令行调试。于是翻了下手册,做了以下修改

将原来的

config_interface: wx

更改为

config_interface: textconfig

嗯,我也不懂为啥debugger是通过config interface配置的。。。

顺便一提这个textconfig的接口,使用的是x。如果默认直接安装的bochs,会提示库找不到。你需要额外安装bochs-x

apt install bochs-x

以支持x界面的textconfig。挺蛋疼的。。。

猜你喜欢

转载自blog.csdn.net/zerooffdate/article/details/80296426
今日推荐