还是pthread_cancel时出现段错误的问题???还望高手指点一下

wj025 2008-07-28 03:05:05
我可以确定是pthread_cancel.c中的35行: if (INVALID_TD_P (pd))时出的错误.
但不知原因是什么???
有一个原因可以确定:如果tid,即pd如果为0时,会出错这个错误;
不知还有什么原因可以导致这个错误呢???
INVALID_TD_P具体做哪些检查啊???
好像是否是线程堆栈出错啦??
...全文
182 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fierygnu 2008-07-28
  • 打赏
  • 举报
回复
看一下core
linaxing 2008-07-28
  • 打赏
  • 举报
回复

在调用pthread_cancel()之前检查一下传入的线程ID是否为有效值。
另外,也有可能是你程序的其它地方有内存的越界访问,导致整个栈出了问题了。
调试多线程确实比较麻烦,没有太好的工具。多加点log是一个比较好的选择。

23,126

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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