LoginSignup
0
0

7-ZipをVisual Studio 2017 Expressでデバッグする

Posted at

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で開きます。

image.png

ソリューションエクスプローラからasmファイルを削除し、
同名の/7z2301-src/C/*opt.cファイルに置き換えます。
※この手順は以下のサイトで公開されていました。

asm.png

*opt.cファイルのプロパティでプリコンパイル済みヘッダーを使用しないを設定します。

opt.png

SDKのバージョンをインストール済みのものに変更し、
関数レベルでリンクする:はい(/Gy)
デバッグできるアセンブリ:はい(/ASSEMBLYDEBUG)
を設定します。

image.png
image.png
image.png

以上の設定が終わったら、ソリューションのビルドを実行します。
C:\Util\7z.dllが作成されていれば成功です。

FileManagerのプロジェクトの変換

FM.dswをVisual Studio 2017 Expressで開きます。

SDKのバージョンをインストール済みのものに変更し、
関数レベルでリンクする:はい(/Gy)
埋め込みマニュフェスト:いいえ
コマンド:C:\Util\7zFM.exe
を設定します。

image.png
image.png
image.png
image.png
image.png

次に先程作成した7z.dllのプロジェクトを既存のプロジェクトの追加で選択します。

project.png

FMのプロジェクトの依存関係を以下のように設定します。

image.png

デバッグしたいソースの該当箇所にブレークポイントを設定します。
図の例は
7z > Archive > SquashfsHandler.cpp
のParse4関数にブレークポイントを設定しています。

project.png

デバッグを実行します。
ファイルマネージャで適当な*.opk(SquashFS)ファイルを選択すると、
以下のブレークポイントに到達します。

project.png

以上の手順で任意の箇所でブレークできることが確認できました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0