如何使用jdb调试android的java程序

如何使用jdb调试android的java程序,第1张

1)下载jdbshell并编译

www.limodev.cn/blog/?dl_name=jdbshell.tar.gz

因为我基本上每次一开始都要执行threads变量,所以我在开始wile循环前加了一句话

else

{

close(parent_to_child[0])

write(parent_to_child[1], "threads\n",strlen("threads\n"))

while(1)

{

int i = 0

line = readline ("")

...

}

}

编译后将jdbshell放到~/bin,或侍梁毕者将目录加到PATH里

出现无法打开readline.h的话,安装libreadline6和libreadline6-dev

2)仿照gdbclient,在build/envsetup.sh中加入jdbclient函数

function jdbclient()

{

local MY_SRC_PATH="$1"

if [ "$MY_SRC_PATH" ] then

MY_SRC_PATH=$1

echo $MY_SRC_PATH

else

echo "ROOT" $OUR_ROOT

MY_SRC_PATH="app_process"

fi

local PORT="$2"

if [ "$PORT" ] then

PORT=$2

else

PORT=":9000"

fi

local PID

local PROG="$3"

if [ "$PROG" ] then

PID=`pid $3`

echo tcp$PORT jdwp$PID

adb forward "tcp$PORT" "jdwp:$PID"

echo jdbshell -sourcepath $MY_SRC_PATH -attach localhost$PORT

jdbshell -sourcepath $MY_SRC_PATH -attach localhost$PORT

sleep 2

else

echo ""

echo "please specify app you want to debug:"

echo ""

fi

}

3)启动android模拟器,运行浏览器

4)jdbclient packets/app/Browser/src/ :9000 browser

第一个参数你要load进来的代码的地址,如果你要load多个代老芹渣早码(调试的时候可以看),可以

export DEBUG_SRC_PATH=

然后

jdbclient $DEBUG_SRC_PATH :9000 browser

第二个参数是attach端口,如果9000有在用,可以用其他端口

第三个参数是要调试的应用,脚本里面根据

pid browser来取得进程id,所以你要保证

adb shell ps |grep browser

能够看到对应的进程

建议楼主在命令行下输入一个jdb后然后在以下的回显下

正在初始化 jdb...

>

在>后面打个旅册help,里面对各种命令都有仔细的讲解,仔细看看,你想要干的事情说不拆铅宏定里面都有提供的功能。激改


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12483698.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存