gpt4 book ai didi

c++ - 在共享对象文件中设置 gdb 断点

转载 作者:搜寻专家 更新时间:2023-10-31 01:52:53 25 4
gpt4 key购买 nike

我有一个动态加载共享对象库的可执行文件,比方说 foo.so。我不构建 foo.so,它作为一个库提供给我,供我在代码中使用。 foo.cpp 编译为 foo.so。我无权访问 foo.cpp 但有 foo.so。我想在我的可执行文件调用此共享库 foo.so 中的函数时设置断点(即调用 foo.cpp 中的函数时)。他们是 gdb 中的一种方式吗?我试过了

gdb funcname 

但是好像不行。任何指示如何在那时打破 gdb?

最佳答案

Is their a way in gdb to do so?

是的。

I have tried gdb funcname

那是行不通的。您需要运行 gdb exename,然后在 (gdb) 提示符下运行 break funcname

此时,GDB 可能会通知您 funcname 还不存在(因为您还没有动态加载 foo.so),并会询问您是否要创建一个延迟 断点。您应该回答 yes,GDB 将在每次加载新的共享库时重试设置此断点。最终这会成功,你应该设置断点(自动和静默),当你稍后调用 funcname 时,该断点将触发并且 GDB 将停止(这正是你想要的)。

关于c++ - 在共享对象文件中设置 gdb 断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11944038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com