首页
社区
课程
招聘
[求助]gdb调试, call function时出错
发表于: 2016-1-7 18:44 4366

[求助]gdb调试, call function时出错

2016-1-7 18:44
4366
小弟打算在使用ndk里面的gdb+gdbserver调试一个程序,调用自己的一个函数。
函数定义如下:

int myplus(int a, int b)
{
    return a + b;       
}

我附加到进程之后

(gdb) x myplus
0x5f250b70 <_Z6myplusii>:       0x47701840
(gdb) call (int)myplus(2,3)
(gdb) Entry point address is not known.
(gdb) call (int)0x5f250b70(2,3)
(gdb) Entry point address is not known.
(gdb) p (int)0x5f250b70(2,3)
(gdb) Entry point address is not known.

当call自己的函数时候出现了Entry point address is not known.错误,不知道是不是我写错了。
小弟是刚刚从ios平台转战android平台的,在ios平台里面,call (int)myplus(2,3) 这样写
是可以调用的,不知道android平台是不是也这样写?
    小弟google了1天,没有找到有用的信息,甚是沮丧...
    希望大神看见了帮帮小弟,赐教一二,谢谢了!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 689
活跃值: (422)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
2
为什么要在函数名前边加一个(int)?

我找到了可以解决你问题的帖子,给你参考

http://blog.chinaunix.net/uid-20196318-id-3595769.html
2016-1-7 20:54
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这帖子不行啊,
(gdb) set $box = malloc(4)
(gdb) Entry point address is not known.
(gdb) call malloc(4)
(gdb) Entry point address is not known.
(gdb) call malloc(0x4)
(gdb) Entry point address is not known.
(gdb) call (void*)malloc(0x4)
(gdb) Entry point address is not known.

这样试也不行,我用的NDK-r10里面的gdbserver和gdb
2016-1-8 11:17
0
雪    币: 689
活跃值: (422)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
4
既然能用x myplus看见地址,那应该没有问题的啊

我在ubuntu server上怎么都试不出来你这样的错误,可能不是远程调试的原因吧
你可以试试 call _Z6myplusii
另外,考虑一下平台是否匹配,你的gdbserver和程序是在哪运行的
如果还是不行的话,我也没办法了
2016-1-8 14:37
0
雪    币: 44
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不要用gdb调试安卓的so文件,那就是一个坑啊!!用ida吧
2016-1-8 19:37
0
游客
登录 | 注册 方可回帖
返回
//