安卓smali启动就附加调试的正确步骤
简书链接:安卓smali启动就附加调试的正确步骤
文章字数:560,阅读全文大约需要2分钟
网上的教程龙鱼混杂,如果没有搞清楚他们之间的关系就会翻车。
首先此教程只针对想一运行就要调试的,其他的没有那么麻烦。
- 首先让应用可以被调试,如 root, 或者 debuggable=true
- 让此应用进入等待调试断点状态
start for debugger
输入adb shell am start -D -n cn.qssq66.robot/cn.qssq666.robot.MainActivity
- 用
as attach process
下断点,比如onCreate
- 打开ddms获取调试端口
也就是sdk\tools\monitor.bat
绿色代表已经进入调试状态了,红色代表程序处于wait for debugger
状态,这里只截图了绿色的,
其中8700代表选中的进程的调试端口可以是8700也可以是 /左边的,比如图中的9605/8700
- 执行恢复命令
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700
这里的8700 也可以不写8700,可以选择要调试的进程端口也是可以的,否则你选择了哪个进程哪个就是8700那么调试的就是哪个结果
1
2
3
4C:\Users\Administrator>jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700
设置未捕获的java.lang.Throwable
设置延迟的未捕获的java.lang.Throwable
正在初始化jdb...
上图意味着成功
1 | 正在初始化jdb... |
上图意味着失败
https://www.aliyun.com/jiaocheng/91652.html
https://stackoverflow.com/questions/37670487/shmembase-attach-failed-when-connecting-to-android-device
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 情迁博客!
评论