アプリケーションパフォーマンスプロファイリング¶
パフォーマンスの問題は、一定時間内に操作を完了できなかったために発生するソフトウェア障害の一種です。たとえば、自律走行車や高頻度の金融取引プラットフォームなど、ミリ秒単位の分解能で 必要なアクションを実行できないリアルタイムシステムは、最終的に重大な社会経済的影響をもたらします。致命的なエラーやロジックエラーとは異なり、パフォーマンスの問題は システムクラッシュや不正確な出力のような明らかな失敗を引き起こさないかもしれません。
パフォーマンスの問題を診断するために、プロファイラーと呼ばれる計装機器を使用して、プログラムの実行状態を定期的にサンプリングします。プロファイルデータを分析することによって、 CPU /メモリリソースの過剰消費を問題のあるソースコードのファイルと機能に切り分けることができます。
PSYGIG Mobility IoT SDK は、全体的なパフォーマンスが影響を受ける可能性があるプログラムコード内のホットスポットを識別するための計測ツールを提供します。Application Performance Profiling APIには、組み込みシステムへの統合に適した多くの機能が含まれています:
アプリケーションに直接動作し、ソースコードを再コンパイルする必要はありません
サードパーティのAPMプラットフォーム とのシームレスな統合
CPU使用率プロファイリングデータを自動的に収集し、パフォーマンスホットスポットを識別するコールツリーを生成します
定期的なメモリ使用量のスナップショットを生成し、メモリの割り当て/割り当て解除場所のスタックトレースを提供します
プログラムのメモリリークを特定する
アプリケーションパフォーマンスHTMLレポートを生成する
psymon
の使用¶
ソースコードを変更しなくても、 psymon
スクリプトを使用してプログラムを実行することで、
アプリケーションに対するパフォーマンスプロファイリングを即座に有効にできます。例
psymon --profile "/path/to/your/app --arg1 --arg2 --arg3"
オプションリストは psymon-manページ を参考ください。
PSYGIGトリアージSDK APIの使用¶
Application Performance Profiling APIには、 単一のヘッダーファイル
を含めて libpsyiage
共有ライブラリをリンクすることによってアクセスできます。詳細については、
高度なセットアップ - libpsyiageを使用したアプリケーションの構築 を参照ください。
CPUプロファイラを起動/停止¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <psyiage/psyiagesdk.h>
int main(int argc, char **argv)
{
psyiage_handle pah; // handle to psyiage instance
/* ... Initialize code omitted for simplicity ... */
// Start CPU profiler
rc = psyiage_profile_enable_profiling(pah, 10);
/* Some code to profile */
// Stop CPU profiler
rc = psyiage_profile_enable_profiling(pah, 0);
/* ... Cleanup code omitted for simplicity ... */
}
|
メモリ使用量のスナップショットを生成¶
注釈
メモリ使用量のスナップショットの生成 は進行中です。この機能をベータテストすることに興味がある方は、 連絡 ください。
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <psyiage/psyiagesdk.h>
int main(int argc, char **argv)
{
psyiage_handle pah; // handle to psyiage instance
/* ... Initialize code omitted for simplicity ... */
// Capture memory snapshot
rc = psyiage_profile_memory_snapshot(pah);
/* ... Cleanup code omitted for simplicity ... */
}
|
サンプルJSON CPUプロファイルデータ¶
{
"CPUProfile": {
"Duration": 6.971331596,
"Timestamp": 1559354468.148161173,
"TimeOfDay": "2019-06-01 11:01:08.148161172",
"Samples": [
{
"ThreadId": "0x00007f49a2367800",
"Count": 1,
"Depth": 10,
"StackTrace": [
{
"FrameNum": 1,
"InstrAddr": "0x000055d0471b2f38",
"FilePathId": 0,
"FunctionId": 1,
"Offset": "0xf148"
},
{
"FrameNum": 2,
"InstrAddr": "0x000055d0471b3dc1",
"FilePathId": 0,
"FunctionId": 1,
"Offset": "0xffd1"
},
{
"FrameNum": 3,
"InstrAddr": "0x000055d0471aad13",
"FilePathId": 0,
"FunctionId": 1,
"Offset": "0x6f23"
},
{
"FrameNum": 4,
"InstrAddr": "0x000055d04719d6f2",
"FilePathId": 0,
"FunctionId": 2,
"Offset": "0x32"
},
{
"FrameNum": 5,
"InstrAddr": "0x000055d0471a27ae",
"FilePathId": 0,
"FunctionId": 3,
"Offset": "0x45de"
},
{
"FrameNum": 6,
"InstrAddr": "0x000055d0471a27ae",
"FilePathId": 0,
"FunctionId": 3,
"Offset": "0x45de"
},
{
"FrameNum": 7,
"InstrAddr": "0x000055d04719cb2a",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0xf32"
},
{
"FrameNum": 8,
"InstrAddr": "0x000055d04719c221",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x629"
},
{
"FrameNum": 9,
"InstrAddr": "0x00007f49a11bc830",
"FilePathId": 5,
"FunctionId": 6,
"Offset": "0xf0"
},
{
"FrameNum": 10,
"InstrAddr": "0x000055d04719c369",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x771"
}
]
},
{
"ThreadId": "0x00007f49a2367800",
"Count": 7,
"Depth": 8,
"StackTrace": [
{
"FrameNum": 1,
"InstrAddr": "0x00007f49a12648eb",
"FilePathId": 5,
"FunctionId": 7,
"Offset": "0x3b"
},
{
"FrameNum": 2,
"InstrAddr": "0x00007f49a12644b1",
"FilePathId": 5,
"FunctionId": 8,
"Offset": "0x91"
},
{
"FrameNum": 3,
"InstrAddr": "0x000055d0471b6bb8",
"FilePathId": 0,
"FunctionId": 1,
"Offset": "0x12dc8"
},
{
"FrameNum": 4,
"InstrAddr": "0x000055d0471b7e6c",
"FilePathId": -1,
"FunctionId": 9,
"Offset": "0x4fc"
},
{
"FrameNum": 5,
"InstrAddr": "0x000055d04719c7a0",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0xba8"
},
{
"FrameNum": 6,
"InstrAddr": "0x000055d04719c221",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x629"
},
{
"FrameNum": 7,
"InstrAddr": "0x00007f49a11bc830",
"FilePathId": 5,
"FunctionId": 6,
"Offset": "0xf0"
},
{
"FrameNum": 8,
"InstrAddr": "0x000055d04719c369",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x771"
}
]
},
{
"ThreadId": "0x00007f49a2367800",
"Count": 1,
"Depth": 10,
"StackTrace": [
{
"FrameNum": 1,
"InstrAddr": "0x00007f49a11e9319",
"FilePathId": 5,
"FunctionId": 10,
"Offset": "0x1a9"
},
{
"FrameNum": 2,
"InstrAddr": "0x00007f49a12b2bc9",
"FilePathId": 5,
"FunctionId": 11,
"Offset": "0xf9"
},
{
"FrameNum": 3,
"InstrAddr": "0x000055d0471aad45",
"FilePathId": 0,
"FunctionId": 1,
"Offset": "0x6f55"
},
{
"FrameNum": 4,
"InstrAddr": "0x000055d04719d6f2",
"FilePathId": 0,
"FunctionId": 2,
"Offset": "0x32"
},
{
"FrameNum": 5,
"InstrAddr": "0x000055d0471a27ae",
"FilePathId": 0,
"FunctionId": 3,
"Offset": "0x45de"
},
{
"FrameNum": 6,
"InstrAddr": "0x000055d0471a27ae",
"FilePathId": 0,
"FunctionId": 3,
"Offset": "0x45de"
},
{
"FrameNum": 7,
"InstrAddr": "0x000055d04719cb2a",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0xf32"
},
{
"FrameNum": 8,
"InstrAddr": "0x000055d04719c221",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x629"
},
{
"FrameNum": 9,
"InstrAddr": "0x00007f49a11bc830",
"FilePathId": 5,
"FunctionId": 6,
"Offset": "0xf0"
},
{
"FrameNum": 10,
"InstrAddr": "0x000055d04719c369",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x771"
}
]
},
{
"ThreadId": "0x00007f49a2367800",
"Count": 1,
"Depth": 11,
"StackTrace": [
{
"FrameNum": 1,
"InstrAddr": "0x00007f49a11c8b74",
"FilePathId": 5,
"FunctionId": 12,
"Offset": "0x14"
},
{
"FrameNum": 2,
"InstrAddr": "0x000055d0471b2cad",
"FilePathId": 0,
"FunctionId": 1,
"Offset": "0xeebd"
},
{
"FrameNum": 3,
"InstrAddr": "0x000055d0471b3dc1",
"FilePathId": 0,
"FunctionId": 1,
"Offset": "0xffd1"
},
{
"FrameNum": 4,
"InstrAddr": "0x000055d0471aad13",
"FilePathId": 0,
"FunctionId": 1,
"Offset": "0x6f23"
},
{
"FrameNum": 5,
"InstrAddr": "0x000055d04719d6f2",
"FilePathId": 0,
"FunctionId": 2,
"Offset": "0x32"
},
{
"FrameNum": 6,
"InstrAddr": "0x000055d0471a27ae",
"FilePathId": 0,
"FunctionId": 3,
"Offset": "0x45de"
},
{
"FrameNum": 7,
"InstrAddr": "0x000055d0471a27ae",
"FilePathId": 0,
"FunctionId": 3,
"Offset": "0x45de"
},
{
"FrameNum": 8,
"InstrAddr": "0x000055d04719cb2a",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0xf32"
},
{
"FrameNum": 9,
"InstrAddr": "0x000055d04719c221",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x629"
},
{
"FrameNum": 10,
"InstrAddr": "0x00007f49a11bc830",
"FilePathId": 5,
"FunctionId": 6,
"Offset": "0xf0"
},
{
"FrameNum": 11,
"InstrAddr": "0x000055d04719c369",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x771"
}
]
},
{
"ThreadId": "0x00007f49a2367800",
"Count": 1,
"Depth": 9,
"StackTrace": [
{
"FrameNum": 1,
"InstrAddr": "0x00007f49a121e786",
"FilePathId": 5,
"FunctionId": 13,
"Offset": "0x56b6"
},
{
"FrameNum": 2,
"InstrAddr": "0x00007f49a1220184",
"FilePathId": 5,
"FunctionId": 14,
"Offset": "0x54"
},
{
"FrameNum": 3,
"InstrAddr": "0x000055d0471b6313",
"FilePathId": 0,
"FunctionId": 1,
"Offset": "0x12523"
},
{
"FrameNum": 4,
"InstrAddr": "0x000055d0471b6bf2",
"FilePathId": -1,
"FunctionId": 1,
"Offset": "0x12e02"
},
{
"FrameNum": 5,
"InstrAddr": "0x000055d0471b7e6c",
"FilePathId": -1,
"FunctionId": 9,
"Offset": "0x4fc"
},
{
"FrameNum": 6,
"InstrAddr": "0x000055d04719c7a0",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0xba8"
},
{
"FrameNum": 7,
"InstrAddr": "0x000055d04719c221",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x629"
},
{
"FrameNum": 8,
"InstrAddr": "0x00007f49a11bc830",
"FilePathId": 5,
"FunctionId": 6,
"Offset": "0xf0"
},
{
"FrameNum": 9,
"InstrAddr": "0x000055d04719c369",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x771"
}
]
},
{
"ThreadId": "0x00007f49a2367800",
"Count": 1,
"Depth": 4,
"StackTrace": [
{
"FrameNum": 1,
"InstrAddr": "0x000055d04719cb02",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0xf0a"
},
{
"FrameNum": 2,
"InstrAddr": "0x000055d04719c221",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x629"
},
{
"FrameNum": 3,
"InstrAddr": "0x00007f49a11bc830",
"FilePathId": 5,
"FunctionId": 6,
"Offset": "0xf0"
},
{
"FrameNum": 4,
"InstrAddr": "0x000055d04719c369",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x771"
}
]
},
{
"ThreadId": "0x00007f49a2367800",
"Count": 42,
"Depth": 14,
"StackTrace": [
{
"FrameNum": 1,
"InstrAddr": "0x00007f49a12932c0",
"FilePathId": 5,
"FunctionId": 15,
"Offset": "0x10"
},
{
"FrameNum": 2,
"InstrAddr": "0x00007f49a1214bff",
"FilePathId": 5,
"FunctionId": 16,
"Offset": "0x8f"
},
{
"FrameNum": 3,
"InstrAddr": "0x00007f49a1216409",
"FilePathId": 5,
"FunctionId": 17,
"Offset": "0x79"
},
{
"FrameNum": 4,
"InstrAddr": "0x00007f49a121547d",
"FilePathId": 5,
"FunctionId": 18,
"Offset": "0x29d"
},
{
"FrameNum": 5,
"InstrAddr": "0x00007f49a11e992d",
"FilePathId": 5,
"FunctionId": 10,
"Offset": "0x7bd"
},
{
"FrameNum": 6,
"InstrAddr": "0x00007f49a12b2bc9",
"FilePathId": 5,
"FunctionId": 11,
"Offset": "0xf9"
},
{
"FrameNum": 7,
"InstrAddr": "0x000055d0471aad45",
"FilePathId": 0,
"FunctionId": 1,
"Offset": "0x6f55"
},
{
"FrameNum": 8,
"InstrAddr": "0x000055d04719d6f2",
"FilePathId": 0,
"FunctionId": 2,
"Offset": "0x32"
},
{
"FrameNum": 9,
"InstrAddr": "0x000055d0471a27ae",
"FilePathId": 0,
"FunctionId": 3,
"Offset": "0x45de"
},
{
"FrameNum": 10,
"InstrAddr": "0x000055d0471a27ae",
"FilePathId": 0,
"FunctionId": 3,
"Offset": "0x45de"
},
{
"FrameNum": 11,
"InstrAddr": "0x000055d04719cb2a",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0xf32"
},
{
"FrameNum": 12,
"InstrAddr": "0x000055d04719c221",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x629"
},
{
"FrameNum": 13,
"InstrAddr": "0x00007f49a11bc830",
"FilePathId": 5,
"FunctionId": 6,
"Offset": "0xf0"
},
{
"FrameNum": 14,
"InstrAddr": "0x000055d04719c369",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x771"
}
]
},
{
"ThreadId": "0x00007f49a2367800",
"Count": 1,
"Depth": 14,
"StackTrace": [
{
"FrameNum": 1,
"InstrAddr": "0x00007f49a12932be",
"FilePathId": 5,
"FunctionId": 15,
"Offset": "0xe"
},
{
"FrameNum": 2,
"InstrAddr": "0x00007f49a1214bff",
"FilePathId": 5,
"FunctionId": 16,
"Offset": "0x8f"
},
{
"FrameNum": 3,
"InstrAddr": "0x00007f49a1216409",
"FilePathId": 5,
"FunctionId": 17,
"Offset": "0x79"
},
{
"FrameNum": 4,
"InstrAddr": "0x00007f49a121547d",
"FilePathId": 5,
"FunctionId": 18,
"Offset": "0x29d"
},
{
"FrameNum": 5,
"InstrAddr": "0x00007f49a11e992d",
"FilePathId": 5,
"FunctionId": 10,
"Offset": "0x7bd"
},
{
"FrameNum": 6,
"InstrAddr": "0x00007f49a12b2bc9",
"FilePathId": 5,
"FunctionId": 11,
"Offset": "0xf9"
},
{
"FrameNum": 7,
"InstrAddr": "0x000055d0471aad45",
"FilePathId": 0,
"FunctionId": 1,
"Offset": "0x6f55"
},
{
"FrameNum": 8,
"InstrAddr": "0x000055d04719d6f2",
"FilePathId": 0,
"FunctionId": 2,
"Offset": "0x32"
},
{
"FrameNum": 9,
"InstrAddr": "0x000055d0471a27ae",
"FilePathId": 0,
"FunctionId": 3,
"Offset": "0x45de"
},
{
"FrameNum": 10,
"InstrAddr": "0x000055d0471a27ae",
"FilePathId": 0,
"FunctionId": 3,
"Offset": "0x45de"
},
{
"FrameNum": 11,
"InstrAddr": "0x000055d04719cb2a",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0xf32"
},
{
"FrameNum": 12,
"InstrAddr": "0x000055d04719c221",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x629"
},
{
"FrameNum": 13,
"InstrAddr": "0x00007f49a11bc830",
"FilePathId": 5,
"FunctionId": 6,
"Offset": "0xf0"
},
{
"FrameNum": 14,
"InstrAddr": "0x000055d04719c369",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x771"
}
]
},
{
"ThreadId": "0x00007f49a2367800",
"Count": 1,
"Depth": 9,
"StackTrace": [
{
"FrameNum": 1,
"InstrAddr": "0x000055d0471aae7f",
"FilePathId": 0,
"FunctionId": 1,
"Offset": "0x708f"
},
{
"FrameNum": 2,
"InstrAddr": "0x000055d0471aad29",
"FilePathId": 0,
"FunctionId": 1,
"Offset": "0x6f39"
},
{
"FrameNum": 3,
"InstrAddr": "0x000055d04719d6f2",
"FilePathId": 0,
"FunctionId": 2,
"Offset": "0x32"
},
{
"FrameNum": 4,
"InstrAddr": "0x000055d0471a27ae",
"FilePathId": 0,
"FunctionId": 3,
"Offset": "0x45de"
},
{
"FrameNum": 5,
"InstrAddr": "0x000055d0471a27ae",
"FilePathId": 0,
"FunctionId": 3,
"Offset": "0x45de"
},
{
"FrameNum": 6,
"InstrAddr": "0x000055d04719cb2a",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0xf32"
},
{
"FrameNum": 7,
"InstrAddr": "0x000055d04719c221",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x629"
},
{
"FrameNum": 8,
"InstrAddr": "0x00007f49a11bc830",
"FilePathId": 5,
"FunctionId": 6,
"Offset": "0xf0"
},
{
"FrameNum": 9,
"InstrAddr": "0x000055d04719c369",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x771"
}
]
},
{
"ThreadId": "0x00007f49a2367800",
"Count": 1,
"Depth": 9,
"StackTrace": [
{
"FrameNum": 1,
"InstrAddr": "0x000055d0471aae35",
"FilePathId": 0,
"FunctionId": 1,
"Offset": "0x7045"
},
{
"FrameNum": 2,
"InstrAddr": "0x000055d0471aad29",
"FilePathId": 0,
"FunctionId": 1,
"Offset": "0x6f39"
},
{
"FrameNum": 3,
"InstrAddr": "0x000055d04719d6f2",
"FilePathId": 0,
"FunctionId": 2,
"Offset": "0x32"
},
{
"FrameNum": 4,
"InstrAddr": "0x000055d0471a27ae",
"FilePathId": 0,
"FunctionId": 3,
"Offset": "0x45de"
},
{
"FrameNum": 5,
"InstrAddr": "0x000055d0471a27ae",
"FilePathId": 0,
"FunctionId": 3,
"Offset": "0x45de"
},
{
"FrameNum": 6,
"InstrAddr": "0x000055d04719cb2a",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0xf32"
},
{
"FrameNum": 7,
"InstrAddr": "0x000055d04719c221",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x629"
},
{
"FrameNum": 8,
"InstrAddr": "0x00007f49a11bc830",
"FilePathId": 5,
"FunctionId": 6,
"Offset": "0xf0"
},
{
"FrameNum": 9,
"InstrAddr": "0x000055d04719c369",
"FilePathId": 0,
"FunctionId": 4,
"Offset": "0x771"
}
]
}
],
"MemoryMap": [
{
"StartAddr": "0x55d047195000",
"EndAddr": "0x55d0471c8000",
"Permissions": "r-xp",
"FileOffset": "0x0",
"Device": "08:01",
"Inode": 1573226,
"FilePathId": 19
},
{
"StartAddr": "0x55d0473c8000",
"EndAddr": "0x55d0473ca000",
"Permissions": "r--p",
"FileOffset": "0x33000",
"Device": "08:01",
"Inode": 1573226,
"FilePathId": 19
},
{
"StartAddr": "0x55d0473ca000",
"EndAddr": "0x55d0473cb000",
"Permissions": "rw-p",
"FileOffset": "0x35000",
"Device": "08:01",
"Inode": 1573226,
"FilePathId": 19
},
{
"StartAddr": "0x55d0473cb000",
"EndAddr": "0x55d0473cc000",
"Permissions": "rw-p",
"FileOffset": "0x0",
"Device": "00:00",
"Inode": 0,
"FilePathId": -1
},
{
"StartAddr": "0x55d04889b000",
"EndAddr": "0x55d0488c9000",
"Permissions": "rw-p",
"FileOffset": "0x0",
"Device": "00:00",
"Inode": 0,
"FilePathId": 20
},
{
"StartAddr": "0x7f49a031c000",
"EndAddr": "0x7f49a06f1000",
"Permissions": "r--p",
"FileOffset": "0x0",
"Device": "08:01",
"Inode": 1582240,
"FilePathId": 21
},
{
"StartAddr": "0x7f49a06f1000",
"EndAddr": "0x7f49a0b0b000",
"Permissions": "rw-p",
"FileOffset": "0x0",
"Device": "00:00",
"Inode": 0,
"FilePathId": -1
},
{
"StartAddr": "0x7f49a0b0b000",
"EndAddr": "0x7f49a0b79000",
"Permissions": "r-xp",
"FileOffset": "0x0",
"Device": "08:01",
"Inode": 1971606,
"FilePathId": 22
},
{
"StartAddr": "0x7f49a0b79000",
"EndAddr": "0x7f49a0d79000",
"Permissions": "---p",
"FileOffset": "0x6e000",
"Device": "08:01",
"Inode": 1971606,
"FilePathId": 22
},
{
"StartAddr": "0x7f49a0d79000",
"EndAddr": "0x7f49a0d7a000",
"Permissions": "r--p",
"FileOffset": "0x6e000",
"Device": "08:01",
"Inode": 1971606,
"FilePathId": 22
},
{
"StartAddr": "0x7f49a0d7a000",
"EndAddr": "0x7f49a0d7b000",
"Permissions": "rw-p",
"FileOffset": "0x6f000",
"Device": "08:01",
"Inode": 1971606,
"FilePathId": 22
},
{
"StartAddr": "0x7f49a0d7b000",
"EndAddr": "0x7f49a0d7e000",
"Permissions": "r-xp",
"FileOffset": "0x0",
"Device": "08:01",
"Inode": 1972536,
"FilePathId": 23
},
{
"StartAddr": "0x7f49a0d7e000",
"EndAddr": "0x7f49a0f7d000",
"Permissions": "---p",
"FileOffset": "0x3000",
"Device": "08:01",
"Inode": 1972536,
"FilePathId": 23
},
{
"StartAddr": "0x7f49a0f7d000",
"EndAddr": "0x7f49a0f7e000",
"Permissions": "r--p",
"FileOffset": "0x2000",
"Device": "08:01",
"Inode": 1972536,
"FilePathId": 23
},
{
"StartAddr": "0x7f49a0f7e000",
"EndAddr": "0x7f49a0f7f000",
"Permissions": "rw-p",
"FileOffset": "0x3000",
"Device": "08:01",
"Inode": 1972536,
"FilePathId": 23
},
{
"StartAddr": "0x7f49a0f7f000",
"EndAddr": "0x7f49a0f97000",
"Permissions": "r-xp",
"FileOffset": "0x0",
"Device": "08:01",
"Inode": 1972533,
"FilePathId": 24
},
{
"StartAddr": "0x7f49a0f97000",
"EndAddr": "0x7f49a1196000",
"Permissions": "---p",
"FileOffset": "0x18000",
"Device": "08:01",
"Inode": 1972533,
"FilePathId": 24
},
{
"StartAddr": "0x7f49a1196000",
"EndAddr": "0x7f49a1197000",
"Permissions": "r--p",
"FileOffset": "0x17000",
"Device": "08:01",
"Inode": 1972533,
"FilePathId": 24
},
{
"StartAddr": "0x7f49a1197000",
"EndAddr": "0x7f49a1198000",
"Permissions": "rw-p",
"FileOffset": "0x18000",
"Device": "08:01",
"Inode": 1972533,
"FilePathId": 24
},
{
"StartAddr": "0x7f49a1198000",
"EndAddr": "0x7f49a119c000",
"Permissions": "rw-p",
"FileOffset": "0x0",
"Device": "00:00",
"Inode": 0,
"FilePathId": -1
},
{
"StartAddr": "0x7f49a119c000",
"EndAddr": "0x7f49a135c000",
"Permissions": "r-xp",
"FileOffset": "0x0",
"Device": "08:01",
"Inode": 1972534,
"FilePathId": 25
},
{
"StartAddr": "0x7f49a135c000",
"EndAddr": "0x7f49a155c000",
"Permissions": "---p",
"FileOffset": "0x1c0000",
"Device": "08:01",
"Inode": 1972534,
"FilePathId": 25
},
{
"StartAddr": "0x7f49a155c000",
"EndAddr": "0x7f49a1560000",
"Permissions": "r--p",
"FileOffset": "0x1c0000",
"Device": "08:01",
"Inode": 1972534,
"FilePathId": 25
},
{
"StartAddr": "0x7f49a1560000",
"EndAddr": "0x7f49a1562000",
"Permissions": "rw-p",
"FileOffset": "0x1c4000",
"Device": "08:01",
"Inode": 1972534,
"FilePathId": 25
},
{
"StartAddr": "0x7f49a1562000",
"EndAddr": "0x7f49a1566000",
"Permissions": "rw-p",
"FileOffset": "0x0",
"Device": "00:00",
"Inode": 0,
"FilePathId": -1
},
{
"StartAddr": "0x7f49a1566000",
"EndAddr": "0x7f49a166e000",
"Permissions": "r-xp",
"FileOffset": "0x0",
"Device": "08:01",
"Inode": 1971430,
"FilePathId": 26
},
{
"StartAddr": "0x7f49a166e000",
"EndAddr": "0x7f49a186d000",
"Permissions": "---p",
"FileOffset": "0x108000",
"Device": "08:01",
"Inode": 1971430,
"FilePathId": 26
},
{
"StartAddr": "0x7f49a186d000",
"EndAddr": "0x7f49a186e000",
"Permissions": "r--p",
"FileOffset": "0x107000",
"Device": "08:01",
"Inode": 1971430,
"FilePathId": 26
},
{
"StartAddr": "0x7f49a186e000",
"EndAddr": "0x7f49a186f000",
"Permissions": "rw-p",
"FileOffset": "0x108000",
"Device": "08:01",
"Inode": 1971430,
"FilePathId": 26
},
{
"StartAddr": "0x7f49a186f000",
"EndAddr": "0x7f49a188e000",
"Permissions": "r-xp",
"FileOffset": "0x0",
"Device": "08:01",
"Inode": 1971635,
"FilePathId": 27
},
{
"StartAddr": "0x7f49a188e000",
"EndAddr": "0x7f49a1a8d000",
"Permissions": "---p",
"FileOffset": "0x1f000",
"Device": "08:01",
"Inode": 1971635,
"FilePathId": 27
},
{
"StartAddr": "0x7f49a1a8d000",
"EndAddr": "0x7f49a1a8e000",
"Permissions": "r--p",
"FileOffset": "0x1e000",
"Device": "08:01",
"Inode": 1971635,
"FilePathId": 27
},
{
"StartAddr": "0x7f49a1a8e000",
"EndAddr": "0x7f49a1a8f000",
"Permissions": "rw-p",
"FileOffset": "0x1f000",
"Device": "08:01",
"Inode": 1971635,
"FilePathId": 27
},
{
"StartAddr": "0x7f49a1a8f000",
"EndAddr": "0x7f49a1a91000",
"Permissions": "rw-p",
"FileOffset": "0x0",
"Device": "00:00",
"Inode": 0,
"FilePathId": -1
},
{
"StartAddr": "0x7f49a1a91000",
"EndAddr": "0x7f49a1e75000",
"Permissions": "r-xp",
"FileOffset": "0x0",
"Device": "00:32",
"Inode": 1967932,
"FilePathId": 28
},
{
"StartAddr": "0x7f49a1e75000",
"EndAddr": "0x7f49a2074000",
"Permissions": "---p",
"FileOffset": "0x3e4000",
"Device": "00:32",
"Inode": 1967932,
"FilePathId": 28
},
{
"StartAddr": "0x7f49a2074000",
"EndAddr": "0x7f49a20a7000",
"Permissions": "r--p",
"FileOffset": "0x3e3000",
"Device": "00:32",
"Inode": 1967932,
"FilePathId": 28
},
{
"StartAddr": "0x7f49a20a7000",
"EndAddr": "0x7f49a20b4000",
"Permissions": "rw-p",
"FileOffset": "0x416000",
"Device": "00:32",
"Inode": 1967932,
"FilePathId": 28
},
{
"StartAddr": "0x7f49a20b4000",
"EndAddr": "0x7f49a2169000",
"Permissions": "rw-p",
"FileOffset": "0x0",
"Device": "00:00",
"Inode": 0,
"FilePathId": -1
},
{
"StartAddr": "0x7f49a2169000",
"EndAddr": "0x7f49a218f000",
"Permissions": "r-xp",
"FileOffset": "0x0",
"Device": "08:01",
"Inode": 1972305,
"FilePathId": 29
},
{
"StartAddr": "0x7f49a2327000",
"EndAddr": "0x7f49a236c000",
"Permissions": "rw-p",
"FileOffset": "0x0",
"Device": "00:00",
"Inode": 0,
"FilePathId": -1
},
{
"StartAddr": "0x7f49a2388000",
"EndAddr": "0x7f49a238e000",
"Permissions": "rw-p",
"FileOffset": "0x0",
"Device": "00:00",
"Inode": 0,
"FilePathId": -1
},
{
"StartAddr": "0x7f49a238e000",
"EndAddr": "0x7f49a238f000",
"Permissions": "r--p",
"FileOffset": "0x25000",
"Device": "08:01",
"Inode": 1972305,
"FilePathId": 29
},
{
"StartAddr": "0x7f49a238f000",
"EndAddr": "0x7f49a2390000",
"Permissions": "rw-p",
"FileOffset": "0x26000",
"Device": "08:01",
"Inode": 1972305,
"FilePathId": 29
},
{
"StartAddr": "0x7f49a2390000",
"EndAddr": "0x7f49a2391000",
"Permissions": "rw-p",
"FileOffset": "0x0",
"Device": "00:00",
"Inode": 0,
"FilePathId": -1
},
{
"StartAddr": "0x7ffc76986000",
"EndAddr": "0x7ffc769a8000",
"Permissions": "rw-p",
"FileOffset": "0x0",
"Device": "00:00",
"Inode": 0,
"FilePathId": 30
},
{
"StartAddr": "0x7ffc769eb000",
"EndAddr": "0x7ffc769ee000",
"Permissions": "r--p",
"FileOffset": "0x0",
"Device": "00:00",
"Inode": 0,
"FilePathId": 31
}
],
"StringTable": [
{
"Id": 22,
"Value": "/lib/x86_64-linux-gnu/libpcre.so.3.13.2"
},
{
"Id": 4,
"Value": "_init"
},
{
"Id": 3,
"Value": "pred_fls"
},
{
"Id": 0,
"Value": "find"
},
{
"Id": 10,
"Value": "_IO_vfprintf"
},
{
"Id": 7,
"Value": "versionsort"
},
{
"Id": 27,
"Value": "/lib/x86_64-linux-gnu/libselinux.so.1"
},
{
"Id": 24,
"Value": "/lib/x86_64-linux-gnu/libpthread-2.23.so"
},
{
"Id": 16,
"Value": "_IO_file_write"
},
{
"Id": 8,
"Value": "readdir"
},
{
"Id": 1,
"Value": "pred_fprintf"
},
{
"Id": 9,
"Value": "fts_read"
},
{
"Id": 17,
"Value": "_IO_do_write"
},
{
"Id": 6,
"Value": "__libc_start_main"
},
{
"Id": 11,
"Value": "__fprintf_chk"
},
{
"Id": 30,
"Value": "[stack]"
},
{
"Id": 18,
"Value": "_IO_file_xsputn"
},
{
"Id": 31,
"Value": "[vvar]"
},
{
"Id": 23,
"Value": "/lib/x86_64-linux-gnu/libdl-2.23.so"
},
{
"Id": 5,
"Value": "/lib/x86_64-linux-gnu/libc.so.6"
},
{
"Id": 26,
"Value": "/lib/x86_64-linux-gnu/libm-2.23.so"
},
{
"Id": 28,
"Value": "/home/psygig/psygig-sdk-c/build/install/opt/psygig/psyiage/lib/libpsyiage.so.0.3.0"
},
{
"Id": 29,
"Value": "/lib/x86_64-linux-gnu/ld-2.23.so"
},
{
"Id": 12,
"Value": "__ctype_get_mb_cur_max"
},
{
"Id": 15,
"Value": "__write"
},
{
"Id": 21,
"Value": "/usr/lib/locale/locale-archive"
},
{
"Id": 25,
"Value": "/lib/x86_64-linux-gnu/libc-2.23.so"
},
{
"Id": 2,
"Value": "pred_execdir"
},
{
"Id": 19,
"Value": "/usr/bin/find"
},
{
"Id": 14,
"Value": "__libc_malloc"
},
{
"Id": 13,
"Value": "_IO_str_seekoff"
},
{
"Id": 20,
"Value": "[heap]"
}
]
}
}