sqlite - 在 VxWorks 上将 SQLite 集成到 RTP 应用程序中时 pthreads 崩溃

标签 sqlite embedded pthreads vxworks

我正在尝试将 SQLite 库集成到 VxWorks 上的 RTP 应用程序中。我构建了 SQlite 并静态链接它。我运行在其他系统上运行良好的简单测试。测试非常原始:sqlite_open()、sqlite_exec()、sqlite_close()。参数正确(适用于其他系统)。

我体验过 SIGSEGV(信号代码 11)。我使用“printf()s”追踪到崩溃点,发现它在调用 pthread_mutex_lock() 后崩溃。有趣的是 - 它从函数调用返回然后崩溃。我检查了堆栈大小(在实际崩溃之前有一个 taskDelay() )。堆栈足够大,远未达到极限。

我尝试使用 构建 SQlite SQLITE_HOMEGROWN_RECURSIVE_MUTEX 和没有。我一直用 构建SQLITE_THREADSAFE 1 .

如果有人经历过类似的事情并设法解决它 - 请告诉我。

这里有一些细节,只是为了概述它们。

  • VxWorks 版本:6.8
  • SQlite 来源:3.7.16.1
  • 开发环境:Windriever
  • CPU架构:PowerPC

  • 提前致谢

    最佳答案

    我找到了。我的 VxWorks 操作系统中没有 pthread。现在它起作用了。

    奇怪的是,在针对 pthreads 库构建应用程序时,无法验证这一点。

    没有简单的方法可以做到这一点,但至少有某种“ stub ”功能,而不是 SIGSEGV。还是我对这种钱的要求太高了?

    关于sqlite - 在 VxWorks 上将 SQLite 集成到 RTP 应用程序中时 pthreads 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15970387/

    相关文章:

    c - C 中的 Pthread arg

    android - CursorLoader,获取本地数据库的 URI

    sql - 在 SQLite 中将一列中的所有值选择为一个字符串?

    c++ - 类方法访问

    stack - c 代码在 main 开始后用模式(0xABABABAB)绘制嵌入式堆栈?

    c - 如何用 C 杀死管理线程?

    c++ - 正确的 pthread_t 初始化和处理

    c# - 如何查询每个字符的首字母?

    ios - 如何在 ios 中关闭 sqlite 中的数据库?

    c - GCC 链接器,bss 部分符号等于零长度