首页
社区
课程
招聘
[求助]jdb调试,出现未捕获异常
发表于: 2016-5-6 19:41 6528

[求助]jdb调试,出现未捕获异常

2016-5-6 19:41
6528
在调试2015年阿里安全挑战赛第四题时,使用jdb调试时,出现未捕获异常。如下:
C:\Program Files\Java\jdk1.8.0_73\bin>jdb -connect com.sun.jdi.SocketAttach:port=8700,hostname=localhost
设置未捕获的java.lang.Throwable
设置延迟的未捕获的java.lang.Throwable
正在初始化jdb...
>
出现异常错误: java.lang.UnsatisfiedLinkError (未捕获)"线程=<1> main", android.app.ActivityThread.handleBindApplication(), 行=4,400 bci=922

<1> main[1]
哪位朋友帮忙解答下,万分感谢。

[峰会]看雪.第八届安全开发者峰会10月23日上海龙之梦大酒店举办!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 7818
活跃值: (1073)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
2
初步查到原因,没有找到JNI_Onload方法,导致找不到attachBaseContext,导致抛出异常。
目前还不明白为什么在非调试状态下能够找到JNI_Onload函数,而在调试状态却不能找到这个函数,大家有遇到过类似的问题么?
2016-5-8 08:46
0
雪    币: 723
活跃值: (1296)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
3
哥们问题解决了吗
2017-8-23 19:29
0
雪    币: 486
活跃值: (459)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
4

根据提示,可知,出错的地方是,android.app.ActivityThread.handleBindApplication(),  行=4,400
查看源码可以发现,代码中指向的是app.onCreate()
                        try  {
                                mInstrumentation.callApplicationOnCreate(app);//内部调用的是app.onCreate()

                        }  catch  (Exception  e)  {
                                if  (!mInstrumentation.onException(app,  e))  {
                                        throw  new  RuntimeException(
                                                &quot;Unable  to  create  application  &quot;  +  app.getClass().getName()
                                                +  &quot;:  &quot;  +  e.toString(),  e);
                                }
                        }

出现这个错误的原因是其在Java层调用了Debug.  isDebuggerConnected
native层调用的是Dalvik_dalvik_system_VMDebug_isDebuggerConnected
最底层是dvmDbgIsDebuggerConnected
函数内部是判断的gDvm.debuggerActive

解决方案就是,在jdb连接之后,在patch  dvmDbgIsDebuggerConnected函数

2017-8-25 19:40
0
雪    币: 723
活跃值: (1296)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
5
蓝铁 根据提示,可知,出错的地方是,android.app.ActivityThread.handleBindApplication(),&nbsp; 行=4,400查看源码可 ...
谢谢薛老师!!!!!
2017-8-25 19:46
0
游客
登录 | 注册 方可回帖
返回
//