2

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

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

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

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

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

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

提前致谢

4

1 回答 1

1

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

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

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

于 2013-04-25T14:37:14.453 回答