我正在使用我的源代码的供应商API,我可以设置断点并且它们打得很好,但如果我尝试在gdb中调用一个函数(通过其名称),它会说“入口点地址未知.”,是什么这意味着有没有解决方法?我试过谷歌搜索,但没有找到任何有用的东西.非常感谢您的帮助.下一步我想使用objdump获取函数的地址,然后尝试直接调用地址,如果它工作.但我不确切知道如何做到这一点,请在这里指导我,供应商库与我自己的程序动态链接
编辑1:
在做了“信息地址”功能“”之后,我试着调用“call(*”address“)(params)”,仍然显示相同的错误,请注意它确实知道函数地址.
最佳答案 这是一个不起眼的!
在进行较差的调用时,gdb有几个选项可以放置它创建的虚拟堆栈帧.在你的情况下,它选择“入口点” – 基本上(我认为)_start的内存,执行一次然后再也不用了.这种选择似乎是特定于架构的.
在您的情况下,gdb无法找到入口点.如果您从未使用过“file”命令,或者您正在调试.o文件而不是真正的可执行文件,则可能会发生这种情况,但似乎它可能会出现在其他一些更加模糊的场景中.