Zenn Dev Owayo Articles 6190821ac1dd1e
Claude Code に cc というエイリアスをつけたら PC がハングした話(原因は別でした)
- URL: https://zenn.dev/owayo/articles/6190821ac1dd1e
- 日付: 2026-06-26
- Tier: Tier 3
- 要旨: alias cc=‘claude’を設定した直後にtree-sitterのメモリ暴走(43GB消費)が発生し、エイリアスが原因だと誤認した顛末を記録した記事。実際にはtree-sitterがRustのstd::process::Command(execvp)でコンパイラを直接起動するためシェルエイリアスは無効であり、真の原因はtree-sitter v0.26.6の既知のメモリ問題(15MB・5989状態のパーサーでRSS 8GB以上に達する)だったことが後から判明した。ccというUnix標準のコマンド名をエイリアスに使うこと自体の危険性(Makefileやシェルスクリプト経由での意図せぬClaude Code起動)についても整理されている。
詳細
alias cc=‘claude –dangerously-skip-permissions –model opus’設定後にtree-sitter test実行でメモリ暴走した事例の原因調査と教訓。
- 誤認プロセス:which ccでエイリアスが確認できた→「ccがClaude Codeに差し替わりコンパイル時にAIが起動した」と結論づけたが誤り
- 真の原因:tree-sitter(Rust製)は内部でcc Rustクレートを使いstd::process::Command(execvp)でコンパイラを直接起動するためシェルエイリアスは無効
- メモリ暴走の実態:tree-sitter v0.26.6の既知のバグ。parser.cが15MB・状態数5989のような巨大パーサーでRSS 8GB以上、VSIZE 400GB以上に達する
- execvpとエイリアスの挙動整理:シェルで直接ccを入力した場合はエイリアスが効く。subprocess.run([“cc”])やCommand::new(“cc”)はエイリアス無効。Makefile(CCを未指定時)・シェルスクリプト・configureスクリプトはシェル介在のためエイリアスが発動しうる
- 対処:tree-sitter testの代わりにtree-sitter parseベースの軽量テストランナーを使用。エイリアスはccode=‘claude …‘に変更
- Claude CodeのBashツールは.zshrcを読み込んだシェル環境でコマンドを実行するため、which ccでエイリアスが見える状況が誤認を招いた