下午,感到沉沦。 我有一个应用程序' test'由main.c编译。一个充满活力的liabrary< libtest.so'这是由test.cpp用' -g'编译的。在main.c中,我调用了' libtest.so'与'dlopen' 。现在我想在test.cpp中设置一个断点,但是gdb从来没有打过它。我这样做:
gdb ./test -d / home / lcl / test
break test.cpp:35
运行
任何人都可以给我一些提示,谢谢!
答案 0 :(得分:3)
您应首先验证dlopen
实际上是否成功(很可能不是)。
这样做:
main.c
之后在dlopen
中设置断点。NULL
此时,GDB应加载libtest.so
的符号,libtest.so
应显示在info shared
GDB输出中。
如果一切正常,info break
应在test.cpp:35
的某个地址显示活动断点。如果永远不会遇到该断点,那么您可能从未真正使用过该行代码。