GDB 如何在 DLOPEN 打开的动态库中设置断点
gdb how to set breakpoint in dynamic library opened by dlopen
下午,每个人。我有一个由main.c编译的应用程序"测试"。一个动态的联络"libtest.so",通过测试编译.cpp带有"-g"。在main.c中,我用"dlopen"调用"libtest.so"。现在我想在测试中设置一个断点.cpp但 gdb 从未命中它。我做如下:
gdb ./test -d/home/lcl/test
断裂测试.cpp:35
跑
任何人都可以给我一些提示,谢谢!
您应该首先验证dlopen
是否确实成功(很可能不是)。
为此:
- 在
dlopen
之后的main.c
中设置断点。 - 确认返回的句柄未
NULL
此时,GDB 应该已加载libtest.so
符号,并且libtest.so
应显示在 GDB 输出info shared
。
如果一切正常,info break
应该在某个地址的test.cpp:35
中显示一个活动的断点。如果从未命中该断点,则很可能您从未实际执行过该行代码。
相关文章:
- 基于 std::vector <string>的内容动态设置顺序的模式
- 如何在C++生成器中动态设置任务数(_di_ITask)?
- 如何在C++中只打印小数点而不设置限制,但动态设置精度
- 在 QTabWidget 中动态设置单个选项卡的样式
- 内存堆,动态设置阵列
- 使用模板C++动态设置结构
- 如何根据道具名称动态设置对象的属性?
- 如何动态设置 char*(基于条件)
- 如何将只读动态设置为按钮和文本框
- 无法动态设置结构变量的数组大小
- 动态设置for循环的初始化、条件和输入/递减
- 动态设置数组大小并从文本文件中读取数组值
- 基于标签高度动态设置窗体的VertScrollBar属性-c++生成器
- 如何动态设置类型
- 如何在神经网络中动态设置输入/输出的数量和行为
- 在ImageView Blackberry 10中动态设置imageSource
- 动态设置要提取的参数
- 在运行时动态设置向量类
- 用C++动态设置数组大小
- 如何在cmake中动态设置目标库