【问题标题】:Cannot find new threads: generic error 64bit Ubuntu找不到新线程:通用错误 64 位 Ubuntu
【发布时间】:2013-03-15 12:48:14
【问题描述】:

我知道围绕这个主题有一些主题,但是没有一个对我有帮助。

我正在尝试使用 GDB 调试我的应用程序,但出现错误

 [debug]Cannot find new threads: generic error 
 [debug][Thread debugging using libthread_db enabled]

在函数 dlopen("my_lib.so", RTLD_LAZY);

这个奇怪的事实是它以前可以工作,当我在 32 位架构的 Ubuntu 下编译时。现在,我搬到了一台安装了 64 位 ubuntu 的新机器上,但是,我提供了编译选项 -m32,以便应用程序仍然在 32 位下编译。请不要告诉我尝试在 64 位下编译它,因为有几个原因不这样做。

我已经按照this主题的指示,仍然没有。

有人有不同的建议吗?

编辑: 32 位机器上的 GCC 版本是 4.4.4,GDB 是 7.2 在 64 位机器上,GCC 的版本是 4.6.1,GDB 是 7.3

这有什么影响吗?

【问题讨论】:

  • 您是否尝试过设置 LD_LIBRARY_PATH?
  • 我刚刚将 GCC 的版本从 4.6 降级到 4.4,它开始完美运行。我真的不明白发生了什么事。

标签: c++ linux gcc gdb


【解决方案1】:

请设置一下

LD_PRELOAD=/lib/x86_64-linux-gnu/libpthread.so.0 gdb --args ./app

【讨论】:

  • 我在帖子中说过,我已经阅读了一些相关的帖子,但都没有帮助。在你的情况下,我只是得到:错误:ld.so:来自 LD_PRELOAD 的对象'/lib/x86_64-linux-gnu/libpthread.so.0'不能被预加载:忽略。所以这就是为什么我想知道如何解决这个问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-03
  • 2021-01-14
相关资源
最近更新 更多