如何摆脱libthread_db

时间:2011-01-26 08:26:27

标签: linux embedded pthreads

在嵌入式文件系统上,我想摆脱libthread_db。我的理解 只是在使用pthread调试程序时才需要它。但是,这是我的观察:

  • 如果libthread_db在启动时不存在(当启动第一个使用programm的pthread时),启动这样的程序会导致段错误。

  • 稍后添加libthread_db(即在pthread程序发生segfaulted之后)不会改变任何内容。每个使用pthread的程序都会在启动时出现段错误。

所以似乎libthread_db对于使用pthread运行任何类型的程序都是必不可少的。

2 个答案:

答案 0 :(得分:5)

libthread_db 从不使用线程程序。调试器只使用

您使用pthreads以某种方式运行程序需要libthread_db的断言是不正确的。如果您的pthread程序在从系统中删除libthread_db时崩溃,则嵌入式目标上的 else 会被破坏;删除libthread_db只会触发其他内容。

您可以轻松确认这一点:在常规Linux系统上构建pthread程序。在strace下运行该程序,并观察libthread_db输出中未显示strace。现在将/lib/libthread_db.so.1重命名为其他内容,并观察测试程序继续正常工作。

答案 1 :(得分:1)