首页
社区
课程
招聘
[求助]gdb对so下断点,无法中断
发表于: 2012-3-20 16:54 6407

[求助]gdb对so下断点,无法中断

2012-3-20 16:54
6407
嗨,大伙,我遇到一个问题,想请教有经验的朋友:

我编写的是一个动态库.so(cpp代码,多线程,gcc编译器),用gdb进行调试,设置了这么两个断点:

(gdb) info b
Num     Type           Disp Enb Address    What
1       breakpoint     keep y   0x0031e7c4 in echo_init_service(ci_service_xdata_t*, ci_server_conf*) at srv_echo.cpp:791
        breakpoint already hit 1 time
2       breakpoint     keep y   0x0031fb84 in echo_init_request_data(ci_request_t*) at srv_echo.cpp:854

两个断点都是进入gdb,set args XXXX之后一起下的,使用的命令是
break srv_echo.cpp:echo_init_service
break srv_echo.cpp:echo_init_request_data
断点1是模块的入口函数,能中断下来;
断点2是一个工具函数,始终没有中断下来。
echo_init_request_data函数一进去就输出一条调试信息,确认已经输出,如下:

 857 [EC] echo_init_request_data: begin...

我试过break *0x0031fb84来下断,但是效果一样,也是断不下来。

我编译选项包含-g,符号信息也加载了,info b的输出已经很明确的说明了这一点。
但是为什么第二个断点始终无法断下来?

请有想法的朋友给些提示,非常感谢!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 342
活跃值: (199)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
自问自答,刚找到问题症结,是因为多进程……
被调试的是最顶层的父进程(从不调用工具函数的主……),调试信息是由子进程输出的。
唉……
2012-3-20 17:32
0
游客
登录 | 注册 方可回帖
返回
//