情况:我在Mac OS X上使用android x86加速模拟器。它正常启动(并显示“HAX正在工作,模拟器以快速虚拟模式运行”行),我可以运行程序。在启动程序后,模拟器会运行一段时间然后冻结,因此我无法与之交互。
例如:如果我调用
重新启动模拟器后,问题就消失了,过一段时间后又会出现。
在未加速的模拟器上运行正确。只有在启用HAXM时才会出错。
我已经尝试过:
这不是this question的重复,因为:
请原谅我提供这些类似的日志,但我希望它们可以帮助诊断问题。我没有发现其他与冻结相关的输出。
我在这里做错了吗?我能以某种方式修复或解决这些冻结吗?
附言:
例如:如果我调用
adb shell ls -l /sdcard/
(或许多其他adb命令),控制台中没有任何内容打印出来,我必须按下control+C才能返回控制。重新启动模拟器后,问题就消失了,过一段时间后又会出现。
在未加速的模拟器上运行正确。只有在启用HAXM时才会出错。
我已经尝试过:
- 重新安装android SDK
- 创建具有不同属性的模拟器
- 在另一台mac机器上运行
- 重新启动模拟器/计算机
- 启用64位内核和扩展(之前被禁用)
这不是this question的重复,因为:
- Mac OS X 版本低于 10.9,我不能使用 Intel 提供的热补丁。
- 这里没有观察到崩溃。
- 计算机不会冻结(但模拟器停止工作)。
- 冻结发生在模拟器工作一段时间后(长达 30 分钟)。
可能与 这个问题 相关,但是:
- 无法分析是否为同一个问题。
- 那里没有有用的答案。
系统信息:
型号标识符:iMac10,1
内存:8 GB
系统版本:Mac OS X 10.6.8(10K549)
内核版本:Darwin 10.8.0
HAXM 发行版 1.0.6
它符合 Intel 的要求。
支持的操作系统:
Mac OS X* 10.6 Snow Leopard 和 10.7 Lion (32/64位)
进行安装设置时,我按照developer.android的指示进行。在 HAXM 安装期间分配了 2048 Mb,并创建了具有 512 Mb RAM 的模拟器。
与此同时,dmesg
中出现了一些消息。历史记录如下:
1) 启动模拟器后(它可以正常工作)
Kext com.intel.kext.intelhaxm not found for unload request.
13
possible map ffffffffffffffff cpu_online_map 3
haxm_error: fc_msr haxm_error: fc_msr 5
5
haxm_error: vt_enablhaxm_error: vt_enable e 1
haxm_error: nx_enable 1
haxm_error: nx_enable 2048
2048
haxm_error: ---- HAXM release 1.0.6 --------
haxm_error: This log collects runnging status of HAXM driver.
haxm_error: set memlimit 0x80000000
2)一段时间过去后(它仍然有效!)
23
possible map ffffffffffffffff cpu_online_map 3
haxm_error: fc_msr h5
axm_error: fc_msr h5
ahaxm_error: vt_enable xm_error: vt_enable 1
1
haxm_error: nx_haxm_error: nx_enable ena2048
ble 2048
haxm_error: ---- HAXM release 1.0.6 --------
haxm_error: This log collects runnging status of HAXM driver.
.......hax_vm_create_ui 0
cvcpu 0x1d803000 vmid 0 vcpu_id 0
minor id 1000before the crate node
setup hax tunnel request for already setup one
haxm_error: hax_vm_alloc_ram: size 0x20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC
haxm_error: Memory allocation, va:123787000, size:20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error:
...........hax_teardown_vm
.......hax_vm_create_ui 0
cvcpu 0x1d585800 vmid 0 vcpu_id 0
minor id 1000before the crate node
setup hax tunnel request for already setup one
haxm_error: hax_vm_alloc_ram: size 0x20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC
haxm_error: Memory allocation, va:123637000, size:20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error:
...........hax_teardown_vm
.......hax_vm_create_ui 0
cvcpu 0x1d7a8800 vmid 0 vcpu_id 0
minor id 1000before the crate node
setup hax tunnel request for already setup one
haxm_error: hax_vm_alloc_ram: size 0x20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC
haxm_error: Memory allocation, va:123637000, size:20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
3) 模拟器挂起后
.......hax_vm_create_ui 0
cvcpu 0xf5e5000 vmid 0 vcpu_id 0
minor id 1000before the crate node
setup hax tunnel request for already setup one
haxm_error: hax_vm_alloc_ram: size 0x20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC
haxm_error: Memory allocation, va:123641000, size:20000000
haxm_error: !VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
haxm_error: hax_vm_alloc_ram: size 0x20000
haxm_error: spare alloc: mem_limit 0x0, size 0x20000, spare_ram 0x5800000
haxm_error: VM_STATE_FLAGS_MEM_ALLOC: spare_ram 0x5800000
请原谅我提供这些类似的日志,但我希望它们可以帮助诊断问题。我没有发现其他与冻结相关的输出。
我在这里做错了吗?我能以某种方式修复或解决这些冻结吗?
附言:
$ top
PID COMMAND %CPU TIME #TH #WQ #POR #MREG RPRVT RSHRD RSIZE VPRVT VSIZE PGRP PPID STATE UID FAULTS COW MSGSENT MSGRECV SYSBSD SYSMACH CSW PAGEINS
35308 emulator64-x 99.9 93:35.44 2/1 1 67 114 13M 18M- 179M 297M 3459M 35303 35303 running 503 180922 477 134488 1390 604431027+ 1732 83769+ 7