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,里面对各种命令都有仔细的讲解,仔细看看,你想要干的事情说不拆铅宏定里面都有提供的功能。激改
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)