ゆずまの○○日記がシンプルでいいと思います!

プログラミングを中心に書いていこうと思ってます。

gitのソースをデバッグ実行する〜git log , git log --oneline, git reflog~

概要

  • Eclipse CDT を起動する
  • Build All をする
  • git log をデバッグ実行する
    • git log の debugの構成を設定する
    • 設定した構成でデバッグを実行する
    • Eclipseのコンソールに、git log の結果が出力される。
  • git log –oneline をデバッグ実行する
    • git log –oneline の debugの構成を設定する
    • 設定した構成でデバッグを実行する
    • Eclipseのコンソールに、git log –oneline の結果が出力される。
  • git reflog をデバッグ実行する
    • git reflog の debugの構成を設定する
    • 設定した構成でデバッグを実行する
    • Eclipseのコンソールに、git reflog の結果が出力される。

今回やったことを動画にした。無音だけど。
gitのソースコードをステップ実行する。( source code of git step debugging) - YouTube

Build All をする

f:id:yuzuma_yuzuma_yuzuma:20170404205748p:plain

git logのdebug実行をする

git log の debugの構成を設定する

f:id:yuzuma_yuzuma_yuzuma:20170404205752p:plain f:id:yuzuma_yuzuma_yuzuma:20170404205757p:plain f:id:yuzuma_yuzuma_yuzuma:20170404205801p:plain

設定した構成でデバッグを実行する

f:id:yuzuma_yuzuma_yuzuma:20170404210123p:plain f:id:yuzuma_yuzuma_yuzuma:20170404210201p:plain f:id:yuzuma_yuzuma_yuzuma:20170404210208p:plain

Eclipseのコンソールに、git log の結果が出力される。

f:id:yuzuma_yuzuma_yuzuma:20170404210227p:plain

git log –oneline をデバッグ実行する

git log –oneline の debugの構成を設定する

f:id:yuzuma_yuzuma_yuzuma:20170404210123p:plain f:id:yuzuma_yuzuma_yuzuma:20170404210440p:plain f:id:yuzuma_yuzuma_yuzuma:20170404210447p:plain

設定した構成でデバッグを実行する

f:id:yuzuma_yuzuma_yuzuma:20170404211118p:plain

Eclipseのコンソールに、git log –oneline の結果が出力される。

f:id:yuzuma_yuzuma_yuzuma:20170404210504p:plain

git reflog をデバッグ実行する

git reflog の debugの構成を設定する

f:id:yuzuma_yuzuma_yuzuma:20170404210123p:plain f:id:yuzuma_yuzuma_yuzuma:20170404211219p:plain f:id:yuzuma_yuzuma_yuzuma:20170404211228p:plain

設定した構成でデバッグを実行する

f:id:yuzuma_yuzuma_yuzuma:20170404211302p:plain

Eclipseのコンソールに、git reflog の結果が出力される。

f:id:yuzuma_yuzuma_yuzuma:20170404211314p:plain

git logが実行されるまでの主要な流れ

  • common-main.c::main
  • cmd_main
  • handle_builtin
  • run_builtin
  • p->fn(argc, argv, prefix);
  • log.c::cmd_log()
  • コンソールに結果が出力される

git log –onelineが実行されるまでの主要な流れ

  • common-main.c::main
  • cmd_main
  • handle_builtin
  • run_builtin
  • p->fn(argc, argv, prefix);
  • log.c::cmd_log()
  • コンソールに結果が出力される

git reflogが実行されるまでの主要な流れ

  • common-main.c::main
  • cmd_main
  • handle_builtin
  • run_builtin
  • p->fn(argc, argv, prefix);
  • reflog.c::cmd_reflog
  • コンソールに結果が出力される

どこかで時間作って、興味あるコマンドの実体をみていきたいですね。