Сбой вокруг pthreads при интеграции SQLite в RTP-приложение на VxWorks

Я пытаюсь интегрировать библиотеку SQLite в RTP-приложение на VxWorks. Я построил 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
  • Архитектура процессора: PowerPC

заранее спасибо

1 ответ

Я нашел это. У меня не было pthreads в моей ОС VxWorks. Теперь это работает.

Странно то, что нет способа проверить это при создании приложения для библиотеки pthreads.

Нет простого способа сделать это, но есть, по крайней мере, какая-то функция-заглушка, чем SIGSEGV. Или я слишком много спрашиваю за такие деньги?

Другие вопросы по тегам