免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2681 | 回复: 1
打印 上一主题 下一主题

紧急求助gdb多线程调试问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-01 10:23 |只看该作者 |倒序浏览
我有一个程序在main入口处并行创建了3个子线程,由于该进程本身就是另一个进程的子进程,所以我不能直接通过gdb运行调试,所以我通过了attach动态加载方式,执行gdb后,并attach 该进程号后,程序进入gdb环境,
我使用info thread,得到的结果如下
  4 Thread -1231299664 (LWP 4850)  0xb75ebc32 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
  3 Thread -1241789520 (LWP 4851)  0xb75ebc32 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
  2 Thread -1252279376 (LWP 4852)  0xb75ebc32 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
  1 Thread -1223944992 (LWP 4849)  0xb75ebc32 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
可见各个子线程都是存在的

可当我执行list查看当前程序得到的提示却是
95      <<C++-namespaces>>: No such file or directory.
        in <<C++-namespaces>>

我以为是源代码路径和程序执行目录不同导致无法找到源代码,所以用dir将源代码路径添加进去
dir /源代码路径
提示如下:
Source directories searched:/源代码路径: $ cdir: $cwd
这下我以为能够看到源代码了,可执行list后提示依然一样
然后我想看看能否直接设置断点
b XXX.cpp:300
可得到的提示却是
No source file named XXX.cpp.
也就是说,还是无法找到源代码


总之,我通过动态加载的方式,无法看到源代码,也就是说就无法设置 断点,更无法调试子线程了,
各位有什么办法吗?给个建议

论坛徽章:
0
2 [报告]
发表于 2007-11-20 16:59 |只看该作者
gdb不会递归查找目录,dir命令必须到.c文件所在目录,有多少个目录就指定多少个目录。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP