JDWP 命令行调试

1. JDWP 调试
JDWP 用于在 java 程序层面的调试,当然也可以在 eclipse 中使用,或利用 ddms 调试

  1. 在某一终端运行虚拟机
1
2
3
4
$ adb forward tcp:8000 tcp:8000  
$ adb shell
$ dalvikvm -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y
-cp /sdcard/foo.jar Foo _

此时挂起等待调试

  1. 在另一终端开启调试
1
2
$ jdb -attach localhost:8000  
[jdb _ _ 提示符 _ _ ] run

此时程序继续运行

  1. jdb 常用命令
1
2
3
4
5
[jdb  提示符  ] threads  看当前所有线程  
[jdb 提示符 ] trace methods 0x12aac5a00 跟踪线程号为 0x12aac5a00 的线程 ( 线程号从
threads 得到 )
[jdb 提示符 ] next/step 下一步
[jdb 提示符 ] 40 next 执行 40 次 next