- はじめに
- エージェント
- インテグレーション
- Watchdog
- イベント
- ダッシュボード
- モバイルアプリケーション
- インフラストラクチャー
- サーバーレス
- メトリクス
- ノートブック
- アラート設定
- APM & Continuous Profiler
- CI Visibility
- RUM & セッションリプレイ
- データベース モニタリング
- ログ管理
- セキュリティプラットフォーム
- Synthetic モニタリング
- ネットワークモニタリング
- 開発者
- API
- アカウントの管理
- データセキュリティ
- ヘルプ
PHP は、事実上無限のコールスタックをサポートします。ただし、Zend Engine により提供された関数呼び出しのフック zend_execute_ex
(PHP 5.4 では zend_execute
) は、ネイティブ C スタックを使用して PHP メソッドと関数を呼び出します。これは、PHP のコールスタックが余分に深い場合にスタックオーバーフローの原因となります。
ddtrace バージョン 0.48.0
以降、PHP トレーサーは PHP 5 で zend_execute_ex
フックを使用します。コーススタックが 512
フレームの深さに達すると、PHP トレーサーが警告を発します。環境変数を DD_TRACE_WARN_CALL_STACK_DEPTH=0
に設定すると、この警告を無効にできます。
PHP アプリケーションを深いコールスタックに対応させるには、ホストマシンでスタックサイズ上限を調整します。既存のスタックサイズを確認するには、次を実行します。
$ ulimit -s
たとえば、既存のスタックサイズが 8192
の場合、スタックサイズを 2 倍の 16384
に設定します。
$ sudo ulimit -s 16384