GDB 查看子进程堵在哪里?急急急急急急急急急急急急

kiddy1010 2011-04-02 10:32:45
急急急急急急
本人在开发一个STB项目,现在有两个子任务在看运行时经常停了。
用GDB调试,要知道它到底堵在哪里?

两个任务分别是机顶盒管显示OSD的消息传输,
一个是管音视屏的消息的分发的。现在这两个任务经常堵在了哪里。再也进行不了下一个
循环了。现在用GDB已经重现了现象,
但是如何看到子线程走到哪里了。
...全文
312 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gettext 2011-04-08
  • 打赏
  • 举报
回复
info threads

然后

threads 1/2/3....
teng0210 2011-04-07
  • 打赏
  • 举报
回复
strace -f -p pid
kiddy1010 2011-04-02
  • 打赏
  • 举报
回复
t头疼。
多线程。
jufeng2309 2011-04-02
  • 打赏
  • 举报
回复
GDB调试多进程和多线程是比较头疼的,
有很多也就只能通过打印一些信息去查看具体的错误发生的位置等。
不知楼主是多进程还是什么?
如果多进程程序注意僵死进程发生。
justkk 2011-04-02
  • 打赏
  • 举报
回复
gdb 没怎么用过
在程序中加日志
padmepingouin 2011-04-02
  • 打赏
  • 举报
回复
首先发送中断信号
然后输入info thread查看当前线程的状况 注意每个线程都是有一个数字标记的
假设你要找的线程标记为2号 那么输入thread 2就可以跳转到这个线程
在输入bt可以查看此时调用栈 调用栈是标明哪个文件的哪行的 所以会很快发现问题所在

18,773

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧