【问题标题】:ARM NetBSD5.1 Pthread supportARM NetBSD5.1 Pthread 支持
【发布时间】:2016-01-28 07:32:16
【问题描述】:

我有 NetBSD5.1 源代码。我已经用源代码编译了内核和用户空间。当我在 ARM NetBSD5.1 中使用 pthread_create() 本地编译示例 C 程序时,它崩溃了。相同的程序在我的 Linux PC 中成功运行。想知道运行NetBSD5.1操作系统的ARM机器是否支持Pthread?

注意:其他在ARM机器上本地编译的示例C程序运行成功。

【问题讨论】:

  • @greg-a-woods 我以某种方式能够从 /usr/lib/libpthread.so.0 #1 0x400af724 inet_network 中的 pthread_setcancelstate () 到达这个 bt (gdb) bt #0 0x4003ad5c () from /usr/lib/libc.so.12 #2 0x400af724 inet_network () from /usr/lib/libc.so.12 上一帧与此帧相同(损坏的堆栈?)我也静态编译了程序,我got this #0 0x000232b4 in __flockfile_internal () #1 0x00022ae0 in fflush () #2 0x00022ae0 in fflush () 有什么调试的线索吗?迁移到最新的 NetBSD 对我来说不是一个选择

标签: arm pthreads netbsd


【解决方案1】:

我认为应该可以。 (我目前没有运行 5.1 的 ARM 系统——我的运行的是 7.0 之前的版本。)

如果您可以显示有关崩溃的更多详细信息,例如来自调试器的堆栈回溯,那么也许我或其他人可以提供更多帮助。

【讨论】:

  • @greg-a-woods 非常感谢。程序收到信号 SIGSEGV,分段错误。 0x64aa0640 在?? () (gdb) bt #0 0x64aa0640 in ?? () #1 0x4003ae64 在?? () 来自 /usr/lib/libpthread.so.0 #2 0x4003ae64 in ?? () from /usr/lib/libpthread.so.0 回溯停止:前一帧与此帧相同(损坏的堆栈?)
    它只是一个带有 pthread_create() 的简单程序。相同的程序在 i386 中成功执行。
  • 也许如果您可以使用-g 编译以获取调试符号,那么回溯会更有意义。也许您也可以编辑您的问题并为您的测试程序插入完整源代码的副本。我仍然不确定 pthreads 是否应该在 NetBSD/arm-5.1 上工作,但我在我的 RPi B+ 上的 NetBSD/arm-7.99.8 上使用 pthreads 运行测试程序没有问题。也许你可以升级到 NetBSD-7。
  • 我已经用 -g 编译了我的程序,并且库也说“未剥离”。也许 gdb 有一些错误。
猜你喜欢
  • 2011-05-10
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-30
  • 2013-03-13
  • 2019-12-30
相关资源
最近更新 更多