android x86debug,Debug HowTo | Android-x86

Android-x86

Run Android on your PC

light_theme.png

dark_theme.png

Debug Howto

This page explains how to use adb and gdbserver with VirtualBox

1. use adb:

• In the VirtualBox network configuration, it is simplest to configure it for Host-Only or Bridged.

• boot up Android iso image on the VirtualBox.

• setup ethernet (normally, it will do DHCP by default)

• find the IP address of the android VM, by going to the console and then typing: netcfg

• you can go back to the UI by pressing

• on you host machine, cd /out/host/linux-x86/bin/

• ./adb kill-server

• ./adb connect :5555, after this command, you should see something like below

* daemon not running. starting it now *

* daemon started successfully *

connected to :5555

• ./adb logcat to dump the debug log

2. using adb with a NAT'ed VM

• The steps above work nicely if you have a VM which is set up to use Bridged or Host-Only adapters

• However, if you have a NAT'ed VM you cannot connect to the VM IP from the host

• You will need to set up port forwarding for a host port to be forwarded to the VM port 5555 (which is adb)

• VBoxManage modifyvm

• Example from one machine:

• VBoxManage modifyvm froyo --natpf1 adb,tcp,*,5555,*,5555

• Once this is done, you should see the local port (i.e. 5555 in this case) bound on the host via netstat -a

• You can now connect to the VM by adb localhost:5555

2.a using adb with KVM (qemu)

If you are using KVM instead of Virtualbox you may find the following useful.

Example of running a iso using kvm:

kvm -soundhw es1370 -net nic -net user,hostfwd=tcp::4444-:5555 -cdrom buildname.iso

note the networking arguments: this allows "user networking" which doesn't need root access, while still allowing adb connections, by forwarding them on port 4444 of localhost, so to connect you would use:

adb connect localhost:4444

to disconnect simply (you'll need to do this after stopping/restarting a VM session):

adb disconnect

Its also possible to pass-through usb devices from the host to android guest running in kvm by adding the parameters:

-usb -usbdevice host:2.*

where in the above example that would pass through all devices on the number 2 usb host bus.

3. how to use gdb with gdbserver:

Android-x86 comes with a preinstalled gdbserver. And you can find it in /sbin/gdbserver. To use gdb to debug your process, you need to:

• set up host-only network as mentioned earlier

• in the terminal emulator, run su

• in the terminal emulator, run gdbserver

:1234 [application binary name with the path] or [--attach pid]

• on your host machine, run gdb [path of your application binary]

• gdb > target remote :1234

• gdb > set solib-search-path

• gdb > c

4. Stop zygote to run automatically:

in the vendor/asus/eeepc/init.rc, change following lines

service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server

socket zygote stream 666

onrestart write /sys/android_power/request_state wake

onrestart write /sys/power/state on

to:

service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server

socket zygote stream 666

onrestart write /sys/android_power/request_state wake

onrestart write /sys/power/state on

disabled

oneshot

To start zygote manually just do "start zygote" from the command line.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值