4

変更された SQLite コードから作成された SQLite データベースのインスタンスをデバッグしたいと考えています。ユーザーがデータベースからいくつかのデータを選択するときに、SQLite ソース コードをステップ実行して、SQLite のロジックを確認したいと思います。これの目的は、SELECT トリガーを SQLite ソース コードに追加し、新しいタイプのトリガーを含む SQLite データベースを作成できるかどうかを確認することです。現在、SQLite は UPDATE、INSERT、および DELETE のトリガーのみをサポートしています。

これまでのところ、「融合」SQLite ソース コードをhttp://www.sqlite.org/index.htmlからダウンロードし、Visual Studio 2010 でビルドすることができました。しかし、それに対してデバッグする方法がわかりません。SQLite プロジェクトをプロジェクト参照として使用するテスト C# Web アプリケーションを作成しようとしましたが、参照として追加できません (「'mySQLiteproj' への参照を追加できませんでした」というエラーがスローされます)。使える)。私の現在の構造は、sqlite3.c および sqlite3.h ファイルを含む空の C プロジェクトです。

SQLite のコードは C で書かれており、私にはなじみがありません。私は C# のバックグラウンドを持っているので、Visual Studio の使用を破棄し、代わりにメモ帳またはその他の「ハードコア」IDE を使用することを提案しないでください :)

要するに: SQLite ソース コードをデバッグするにはどうすればよいですか?

編集: Sergey の提案に従って shell.c ファイルをプロジェクトに追加し、デバッグを「ソート」できるようになりました。shell.c のブレークポイントにはヒットしますが、sqlite3.c にはヒットしません。shell.c からの関数呼び出しとして sqlite3.c にステップ インすることはできますが、行が実行中のコードと一致していないようです。行の半分がグレー表示され (おそらく resharper によるものでしょうか?)、変数の自動監視や、コードが現在中断している行の強調表示はありません。

4

1 に答える 1

0

「なじみのない」言語で記述されたライブラリ コードをデバッグするには、最初からやり直すことをお勧めします。

ここでアルゴリズム:

  1. 言語を学ぶ (C)
  2. ツールを学ぶ (Visual Studio のデバッガー)
  3. ターゲットを学習します (SQLite - 他の人に API を提供するライブラリであるため、SQLite API にブレークポイントを設定する必要があります (たとえば、sqlite3_open() および Visual Studio の「実行」shell.c ソース ファイル)。

SQLite 融合用の cmake ベースのビルドを作成したので、Visual Studio ソリューションを生成し、それをデバッグ ターゲットとしてビルドしてからデバッグできます。それが役に立つことを願っています。

于 2012-09-14T07:41:08.590 に答える