HackerNews

スタックウォーキング:空間と時間のトレードオフ

Stack walking: space and time trade-offs

https://maskray.me/blog/2025-10-26-stack-walking-space-and-time-trade-offs


この記事では、Linuxプラットフォーム上でのC++例外処理やスタックアンワインディングにおけるDWARF .eh_frameの必要性について論じています。特に、.eh_frameは呼び出しトレースの記録には使えますが、実行時のオーバーヘッドが大きいと批判されています。代替案としてフレームポインタの有効化や、プロファイリング専用の新しいフォーマットSFrameの採用が提案されています。x86-64向けのスタックウォーキングメカニズムには、フレームポインタ、DWARF .eh_frame、SFrame、LLVMのコンパクトアンワインディングフォーマット、ハードウェアに基づいたLast Branch Record (LBR)などがあります。また、各メカニズムの空間オーバーヘッドやフレームポインタの使用の影響についても詳述されています。特に、スタックトレース取得における手法や、そのトレードオフについて議論されています。