なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

Windows で Git をソースコードからビルドしてデバッグする

なんとなく git/git をソースからビルドしてデバッグすることになりました。
README や Wiki が古かったりして、結構詰まったので、やり方。

まず、 Visual Studio 2022 (or 2019) で、 git/git をクローンした場所をフォルダーとして開きます。
開くと、「CMakeLists.txt を検出したから、適当に選んでね!」って言われるので、以下のディレクトリにあるものを選択します。

git/contrib/buildsystems/CMakeLists.txt

設定を開いてしまった場合は、以下のように記述すれば良い。

{
  "enableCMake": true,
  "sourceDirectory": "contrib/buildsystems"
}

選ぶと、 Visual Studio が裏で良い感じにセットアップしてくれる。割と時間かかるので注意。 セットアップが終わったら、いつも通り上の実行ボタンに git.exe が表示されるので、そこからデバッグできます。
ただし、このままだと git.exe がそのまま実行されるだけなので、ヘルプメッセージのデバッグでもしない限りは無意味です。
ということで、次は起動設定を変更します。

起動設定は、 Debug > Debug and Launch Settings for git から編集できます。
設定の実態は launch.vs.json なので、それを元に設定します。
例えば、 git add についてデバッグしたければ、したのように設定してあげれば、 git add の動作についてデバッグできるようになります。

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "default",
      "project": "contrib\\buildsystems\\CMakeLists.txt",
      "projectTarget": "git.exe",
      "name": "git.exe"
    },
    {
      "type": "default",
      "project": "contrib\\buildsystems\\CMakeLists.txt",
      "projectTarget": "git.exe",
      "name": "git add",
      "args": [
        "-C",
        "M:\\repos\\github.com\\mika-f\\git",
        "add",
        "."
      ]
    }
  ]
}

MS Docs にドキュメントがあるんだけど、微妙に嘘ついていたりするので、そこだけ注意。
なんか一部設定項目が効いていなかったりするので、それは良い感じにする (cwd とか program とかは Local Machine だと効いていないっぽい)。
ということで、メモでした。