Visual Studio 2017 Expressのインストール
上記のファイルをダウンロードし、画面の指示に従ってインストールを行います。
7-Zipのソースの取得
7z2301-src.7zをダウンロード、展開します。
プロジェクトの変換
今回は7-Zipのファイルマネージャのデバッグを行います。
ファイルマネージャを動作させるには、7z.dllも必要になりますので、
FileManagerと7z.dllを作成するプロジェクトの変換を行います。
7-ZipのソースコードのプロジェクトファイルはVisual Studio 6.0等で使われている、
dsp、dswファイルでしか提供されていません。
最新のVisual Studio 2022 Communityではdswの変換機能が削除されていますので、
今回はVisual Studio 2017 Expressを利用します。(2019で変換可能かどうかは未確認です。)
7z.dllのプロジェクトの変換
Format7z.dswをVisual Studio 2017 Expressで開きます。
ソリューションエクスプローラからasmファイルを削除し、
同名の/7z2301-src/C/*opt.cファイルに置き換えます。
※この手順は以下のサイトで公開されていました。
*opt.cファイルのプロパティでプリコンパイル済みヘッダーを使用しないを設定します。
SDKのバージョンをインストール済みのものに変更し、
関数レベルでリンクする:はい(/Gy)
デバッグできるアセンブリ:はい(/ASSEMBLYDEBUG)
を設定します。
以上の設定が終わったら、ソリューションのビルドを実行します。
C:\Util\7z.dllが作成されていれば成功です。
FileManagerのプロジェクトの変換
FM.dswをVisual Studio 2017 Expressで開きます。
SDKのバージョンをインストール済みのものに変更し、
関数レベルでリンクする:はい(/Gy)
埋め込みマニュフェスト:いいえ
コマンド:C:\Util\7zFM.exe
を設定します。
次に先程作成した7z.dllのプロジェクトを既存のプロジェクトの追加で選択します。
FMのプロジェクトの依存関係を以下のように設定します。
デバッグしたいソースの該当箇所にブレークポイントを設定します。
図の例は
7z > Archive > SquashfsHandler.cpp
のParse4関数にブレークポイントを設定しています。
デバッグを実行します。
ファイルマネージャで適当な*.opk(SquashFS)ファイルを選択すると、
以下のブレークポイントに到達します。
以上の手順で任意の箇所でブレークできることが確認できました。