SQLite 라이브러리를 VxWorks의 RTP 응용 프로그램에 통합하려고합니다. 정적으로 SQlite와 링크를 구축했습니다. 다른 시스템에서도 잘 작동하는 간단한 테스트를 실행합니다. 이 테스트는 정말 원시적 인 테스트입니다 : sqlite_open(), sqlite_exec(), sqlite_close(). 매개 변수가 정확합니다 (다른 시스템에서 작동).SQLite를 VxWorks의 RTP 응용 프로그램에 통합하는 동안 pthread가 충돌합니다.
SIGSEGV (신호 코드 11)를 경험했습니다. 나는 "printf() s"로 충돌 지점을 추적하고 pthread_mutex_lock() 호출 후 충돌이 있음을 발견했다. 흥미로운 점은 함수 호출에서 돌아온 다음 충돌이 발생한다는 것입니다. 스택 크기 (실제 충돌 이전에 taskDelay()가 있음)를 확인했습니다. 스택은 충분히 크고 한계에서 멀리 떨어져 있습니다.
SQLITE_HOMEGROWN_RECURSIVE_MUTEX과 함께 SQlite를 빌드하려고합니다. 그리고 항상 빌드 SQLITE_THREADSAFE 1.
누군가가 그런 경험을하고 그것을 해결할 수 있었다면 알려 주시기 바랍니다.
여기에 몇 가지 세부 사항이 있습니다.
- Vx 웍스의 wersion : 6.8
- SQLite는 소스 : 3.7.16.1
- 개발 환경 : Windriever는
- CPU 아키텍처 : 파워
감사합니다 사전에