找回密码
 赶紧注册吧

QQ登录

只需一步,快速开始

查看: 4620|回复: 0
打印 上一主题 下一主题

Android下C程序调试 [复制链接]

注意:1、各网友务必提高交友安全意识,不要轻易参加非天府交友网官方举办的见面交友活动,以防酒托,饭托或引发其他危险;请详细阅读《天府交友网服务条款》和《免责申明》!

Rank: 3Rank: 3

升级  80.67%

跳转到指定楼层
楼主
发表于 2011-10-24 02:48:12 |只看该作者 |倒序浏览
I//system/bin/dhcpcd( 3673): wlan0: loopingI//system/bin/dhcpcd( 3673): wlan0: signal_fd: 4,fd:5D/LocationManager( 3777): removeUpdates: listener = P.a@43d164b8I/DEBUG   ( 3411):          #00  pc 00000000  I/DEBUG   ( 3411):          #01  pc 000527e8  /system/lib/libandroid_runtime.soI/DEBUG   ( 3411):          #02  pc 0000f1f4  /system/lib/libdvm.soI/DEBUG   ( 3411): I/DEBUG   ( 3411): code around lr:I/DEBUG   ( 3411): ad3527d8 69e19806 694c9000 1c191c10 9b059a04 I/DEBUG   ( 3411): ad3527e8 b00247a0 46c0bd10 00017868 00006728 I/DEBUG   ( 3411): ad3527f8 4c0fb570 447c4d0f 6b2e1965 d1112e00 I/DEBUG   ( 3411): I/DEBUG   ( 3411): stack:I/DEBUG   ( 3411):     490ecd28  00000013  I/DEBUG   ( 3411):     490ecd2c  ad05f661  /system/lib/libdvm.soI/DEBUG   ( 3411):     490ecd30  410c2aec  /dalvik-LinearAlloc (deleted)I/DEBUG   ( 3411):     490ecd34  ad0560f7  /system/lib/libdvm.soI/DEBUG   ( 3411):     490ecd38  400292d8  /mspace/dalvik-heap/zygote/0 (deleted)I/DEBUG   ( 3411):     490ecd3c  410c2aec  /dalvik-LinearAlloc (deleted)I/DEBUG   ( 3411):     490ecd40  000003dc  I/DEBUG   ( 3411):     490ecd44  ad0591f5  /system/lib/libdvm.soI/DEBUG   ( 3411):     490ecd48  42200d44  /data/dalvik-cache/system@@classes.dexI/DEBUG   ( 3411):     490ecd4c  42200d44  /data/dalvik-cache/system@@classes.dexI/DEBUG   ( 3411):     490ecd50  4232b87d  /data/dalvik-cache/system@@classes.dexI/DEBUG   ( 3411):     490ecd54  00000000  I/DEBUG   ( 3411):     490ecd58  4264aa04  /data/dalvik-cache/system@@classes.dexI/DEBUG   ( 3411):     490ecd5c  410c1cbc  /dalvik-LinearAlloc (deleted)I/DEBUG   ( 3411):     490ecd60  df002777  I/DEBUG   ( 3411):     490ecd64  e3a070ad  I/DEBUG   ( 3411): #01 490ecd68  43160000  I/DEBUG   ( 3411):     490ecd6c  ad05f661  /system/lib/libdvm.soI/DEBUG   ( 3411):     490ecd70  490ecda8  I/DEBUG   ( 3411):     490ecd74  ad00f1f8  /system/lib/libdvm.soW/ActivityManager( 3436): Activity pause timeout for HistoryRecord{43d6cd48 com.google.android.apps.maps/com.google.android.maps.MapsActivity}wait for fb sleep EnterD/WifiService( 3436): releaseWifiLockLocked: WifiLock{NetworkLocationProvider type=2 binder=android.os.Binder@43bfb998}binder: release 3436:3560 transaction 22233 in, still activebinder: send failed reply for transaction 22233 to 3777:3777I/DEBUG   ( 3411): debuggerd committing suicide to free the zombie!I/DEBUG   ( 3855): debuggerd: Apr 14 2010 14:24:22I/ServiceManager( 2066): service 'usagestats' diedI/ServiceManager( 2066): service 'account' died//////////////////////////留神到红色彩局部,这就是程序履行时的栈!显然第一个pc指针的值为0,也就是pc指针为空,这就是问题之所在,接 下来就是要定位这个问题,上边说了,这里是程序执行时的栈,那么#01  pc 000527e8  /system/lib/libandroid_runtime.so   这个地址就是我们要找的问题的范畴,由于显然是后者先入栈的,所以显然前者包括于后者,那么通过如下命令用地址定位一下源码的地位:cpp@cpp:~/r7_0422$ ../gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-addr2line -e out/target/product/i850/symbols/system/lib/libandroid_runtime.so 000527e8frameworks/base/core/jni/android_location_GpsLocationProvider.cpp:397cpp@cpp:~/r7_0422$看到源码的397行是一个函数,那么000527e8就是这个函数的进口地址了。继而,pc 000000 对应的调用就应当在该函数内部,看到该函数内部只是做了对另一个函数指针的调用罢了,所以咱们可以判断这个函数指针的值为空,显然调用一个空的指针函数是 过错的。所以须要给这个函数指针在早些时候赋值一下问题就能够解决了!对于addr2line的一点弥补:假如可执行文件中不包含调试符号,你将取得??:0 作为响应。  还有在linux中的readelf命令可以读取可执行文件的相干信息,比方有一个可执行文件 aa.elf  则可以这么应用: readelf    -h      aa.elf 参数-h读取可执行文件的head信息。   
关于调试:调试中addr2line命令的使用。问题引出:i850的wifi定位开启后,在使用goole maps时呈现rootfs重启景象,打印的log信息如下://////////////////////////I/DEBUG   ( 3411): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***I/DEBUG   ( 3411): Build fingerprint: 'PROWAVE/i850/i850/:Eclair/eng.lig.20100430.113200:eng/test-keys'I/DEBUG   ( 3411): pid: 3436, tid: 3475  >>> system_server <<<I/DEBUG   ( 3411): signal 11 (SIGSEGV), fault addr 00000000I/DEBUG   ( 3411):  r0 26ba7eec  r1 403f3c49  r2 e98cf6f4  r3 405e58a1I/DEBUG   ( 3411):  r4 00000000  r5 00000000  r6 4229b6cc  r7 48f0c118I/DEBUG   ( 3411):  r8 490ecd84  r9 48feceb4  10 48fe0e9c  fp 00314d30I/DEBUG   ( 3411):  ip ad3527cd  sp 490ecd68  lr ad3527eb  pc 00000000  cpsr 00000010
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏0

使用道具 举报

※为保护您的个人隐私,防止被恶意盗用,在论坛中不得留下手机、QQ、邮箱等联系方式,否则将被屏蔽!,若有需要,请发送站内消息
您需要登录后才可以回帖 登录 | 赶紧注册吧

关于我们|网站地图|帮助中心|商务合作|法律声明|诚聘英才|联系我们| 时尚 娱乐 成都婚庆公司 网站制作天府星空
Copyright © 2010-2011 天府交友(Www.Tflove.Com)版权所有