美文网首页
安卓 smali启动就附加调试 的正确步骤

安卓 smali启动就附加调试 的正确步骤

作者: 吉凶以情迁 | 来源:发表于2018-11-22 10:13 被阅读0次

网上的教程龙鱼混杂,如果没有搞清楚他们之间的关系就会翻车。
首先此教程只针对想一运行就要调试的,其他的没有那么麻烦。

  1. 首先让应用可以被调试,如 root, 或者 debuggable=true
  2. 让此应用进入等待调试断点状态
    start for debugger
    输入
    adb shell am start -D -n cn.qssq66.robot/cn.qssq666.robot.MainActivity
  3. as attach process下断点,比如onCreate
  4. 打开ddms获取调试端口
    也就是sdk\tools\monitor.bat
    image.png
    绿色代表已经进入调试状态了,红色代表程序处于wait for debugger状态,这里只截图了绿色的,
    其中8700代表选中的进程的调试端口可以是8700也可以是 /左边的,比如图中的9605/8700
  5. 执行恢复命令
    jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700
    这里的8700 也可以不写8700,可以选择要调试的进程端口也是可以的,否则你选择了哪个进程哪个就是8700那么调试的就是哪个

结果

image.png
C:\Users\Administrator>jdb  -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700
设置未捕获的java.lang.Throwable
设置延迟的未捕获的java.lang.Throwable
正在初始化jdb...

上图意味着成功

image.png
正在初始化jdb...
>
>
>
应用程序已断开连接

C:\Users\Administrator>jdb  -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700
java.net.SocketException: Software caused connection abort: recv failed
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
        at java.net.SocketInputStream.read(SocketInputStream.java:171)
        at java.net.SocketInputStream.read(SocketInputStream.java:141)
        at com.sun.tools.jdi.SocketTransportService.handshake(SocketTransportService.java:130)
        at com.sun.tools.jdi.SocketTransportService.attach(SocketTransportService.java:232)
        at com.sun.tools.jdi.GenericAttachingConnector.attach(GenericAttachingConnector.java:116
        at com.sun.tools.jdi.SocketAttachingConnector.attach(SocketAttachingConnector.java:90)
        at com.sun.tools.example.debug.tty.VMConnection.attachTarget(VMConnection.java:519)
        at com.sun.tools.example.debug.tty.VMConnection.open(VMConnection.java:328)
        at com.sun.tools.example.debug.tty.Env.init(Env.java:63)
        at com.sun.tools.example.debug.tty.TTY.main(TTY.java:1082)

致命错误:
无法附加到目标 VM。

上图意味着失败

https://www.aliyun.com/jiaocheng/91652.html
https://stackoverflow.com/questions/37670487/shmembase-attach-failed-when-connecting-to-android-device

相关文章

  • 安卓 smali启动就附加调试 的正确步骤

    网上的教程龙鱼混杂,如果没有搞清楚他们之间的关系就会翻车。首先此教程只针对想一运行就要调试的,其他的没有那么麻烦。...

  • 2022-09-19 react-native 用无线wifi调

    换了个电脑,USB口很少,搜索得到安卓原来也可以无线调试,步骤如下 打开安卓手机无线调试 点击无线调试,我的手机是...

  • Smali语法解析

    Smali语言是什么? Smali是Dalvik的寄存器语言,Smali代码是安卓Apk反编译而来的,大家可以通过...

  • 动态调试smali的步骤

    http://www.cnblogs.com/gordon0918/p/5570811.html 1、使用apkt...

  • Android Studio无线调试

    1,无插件,可ADB命令进行无线调试 在安卓开发中每次调试都需要插好数据线,不然就启动不了App 如果数据线松了,...

  • 逆向工程工具集

    1.安卓根据java代码查看smali代码: AS的java2smali插件 逆向新手,记录一下相关工具,持续更新...

  • Android Studio for mac下载安装

    React Native mac 环境打算调试打包安卓所以需要下载安装Android Studio,步骤如下。 1...

  • 安卓动态调试

    开篇 之前工作内容不涉及安卓调试,所以对安卓的测试并不了解。但是最近工作关于安卓的调试越来越多,需要用到动态调试技...

  • dcloud应用和安卓应用互调并传递参数

    以下是webAPP启动安卓应用和获取安卓应用传递过来的参数 webAPP启动安卓APK并传递参数 请看: 接收安卓...

  • 真机调试

    android + chrome IOS + sarari安卓手机调试步骤1.打开手机设置,多次点击版本号,进入开...

网友评论

      本文标题:安卓 smali启动就附加调试 的正确步骤

      本文链接:https://www.haomeiwen.com/subject/pjjoaftx.html