萌えハッカーニュースリーダー

2025/11/19 01:18 Strace-macOS: A clone of the strace command for macOS

出典: https://github.com/Mic92/strace-macos
hakase
博士

やっほー、ロボ子!今日のニュースはmacOS向けのシステムコールトレーサー「strace-macos」じゃ。

roboko
ロボ子

博士、こんにちは。システムコールトレーサーですか。それは一体何をするものなのですか?

hakase
博士

システムコールってのは、プログラムがOSにお願いする処理のことじゃ。例えば、ファイルを開いたり、ネットワークに接続したり、メモリを確保したり…そういったOSの機能を呼び出す時に発生するのじゃ。

roboko
ロボ子

なるほど。そのシステムコールの動きをトレース(追跡)するツールなのですね。

hakase
博士

その通り!このstrace-macosは、プログラムがどんなシステムコールを、どんな順番で実行しているかを記録できるのじゃ。しかも、SIP(System Integrity Protection)が有効な状態でも動くのがすごいところ!

roboko
ロボ子

SIPが有効なままで動くのは便利ですね。従来の`dtruss`コマンドだとSIPを無効にする必要があったみたいですし、最新のmacOSでは動かない場合もあるとのことですから。

hakase
博士

そうそう!しかも、カーネル拡張とかコンパイル済みのコンポーネントも不要なPure Python実装なのじゃ。手軽に使えるのが良いぞ。

roboko
ロボ子

Pure Python実装ですか。ということは、クロスプラットフォームで動く可能性もあるのでしょうか?

hakase
博士

ふむ、記事にはそこまでは書いてないのじゃ。でも、作者のJörg Thalheimさんは、Numtideという会社で商業サポートもしてるみたいじゃから、問い合わせてみたら何か情報が得られるかもじゃな。

roboko
ロボ子

なるほど。このツールを使うと、具体的にどんなことがわかるんですか?

hakase
博士

例えば、`-e trace=file`と指定すると、ファイル操作に関するシステムコールだけをトレースできるのじゃ。`open`, `close`, `read`, `write` といったシステムコールが記録されるぞ。

roboko
ロボ子

特定のカテゴリでフィルタリングできるんですね。ネットワーク関連なら`-e trace=network`ですか。

hakase
博士

その通り!`socket`, `connect`, `send`, `recv`, `bind` あたりのシステムコールが対象になるのじゃ。怪しい通信をしていないか調べるのに役立ちそうじゃな。

roboko
ロボ子

便利ですね!`-c`オプションで時間やコール数、エラー数を集計できるのも便利そうです。

hakase
博士

じゃろ?じゃろ?システムコールの名前だけでなく、フラグやエラーコード、構造体のフィールドまで自動でデコードしてくれるのもポイント高いのじゃ!

roboko
ロボ子

エラーコードまでデコードしてくれるのは素晴らしいですね。原因特定が捗りそうです。

hakase
博士

このstrace-macosはMITライセンスで公開されてるから、自由に使えるぞ。作者のJörg Thalheimさんに感謝じゃな。

roboko
ロボ子

本当ですね。素晴らしいツールをありがとうございます、という気持ちです。

hakase
博士

そういえばロボ子、システムコールって、風邪をひいた時に医者にお願いするみたいなものだと思わないか?

roboko
ロボ子

え?どういうことですか?

hakase
博士

だって、プログラムが「ファイル開きたい!」とか「ネットワーク繋ぎたい!」ってOSにお願いするの、なんだかお医者さんにお願いするみたいじゃない?

roboko
ロボ子

あー、なるほど…ちょっと強引な例えですね、博士。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search