Newer
Older
TelosDB / journals / 20260214-0001-Debug_Entrypoint_Error.md

20260214-0001-Debug_Entrypoint_Error

概要

STATUS_ENTRYPOINT_NOT_FOUND (0xc0000139) エラーが発生し、アプリケーションが起動しない問題を解決する。

現状の分析

  • エラーコード: 0xc0000139 (STATUS_ENTRYPOINT_NOT_FOUND)
  • 発生タイミング: cargo run 後のアプリケーション起動時
  • 疑わしい原因: DLLの依存関係、SQliteのバージョン競合

調査結果

  • Cargo.tomlrusqlitebundled 機能が有効だった(これが原因の可能性大)。
  • vec0.dllsqlite3.dll に依存せず、ホストプロセスから sqlite3_ シンボルを解決しようとするか、動的に sqlite3.dll をロードしようとしている。
  • bundled (静的リンク) ではシンボルがエクスポートされないため、vec0.dll が失敗する。
  • 完全バンドル化も失敗(0xc0000139 解消せず)。

実施した対策(方針転換)

  1. 動的リンクへの回帰:
    • Cargo.toml から bundled 機能を削除。
    • build.rs & prepare-resources.cjssqlite3.dll のコピーを復活。
  2. DLL整合性の確保:
    • bin/sqlite3.dll を正規版(3.45.0 x64)に置換。

現在の状況

  • cargo clean; npm run dev 実行後も STATUS_ENTRYPOINT_NOT_FOUND エラーが発生。
  • sqlite3.dll の問題ではない可能性が出てきた。
  • telos-db.exe が何に依存しているか、Importsを確認する。