記事 ID: 000058606 コンテンツタイプ: エラーメッセージ 最終改訂日: 2024/08/02

Linux* で sgx_emmt ツールを使用する際にエンクレーブのヒープ使用量を確認できません

BUILT IN - ARTICLE INTRO SECOND COMPONENT
概要

sgx_emmtがメモリー使用量データを報告できるようにするシンボルを含むエンクレーブ画像を生成する方法

詳細
  • インテル® Software Guard Extensions (インテル® SGX) アプリケーションを sgx-gdb でデバッグし、 sgx_emmt を使用してメモリー使用量を表示
  • スタックの使用状況は表示されますが、ピークヒープとコミットされた予約メモリは表示されません。
    [Peak stack used]: 7 KB
    [Can't get peak heap used]: You may use version script to control symbol export. Please export 'g_peak_heap_used' in your version script.
    [Can't get peak committed reserved memory]: You may use version script to control symbol export. Please export 'g_peak_rsrv_mem_committed' in your version script.
解決方法

インテル® Software Guard Extensions (インテル® SGX) Developer Reference Guide for Linux*エンクレーブ・メモリー測定ツール のセクションに従って、エンクレーブのバージョンスクリプト内のシンボルg_peak_heap_usedg_peak_rsrv_mem_committedをエクスポートし、以下に説明するようにエンクレーブ・イメージをバージョン・スクリプトにリンクします。

Makefile とバージョンスクリプト SampleEnclave/Enclave/Enclave.lds を再利用するには、インテル SGX SDK の SampleEnclave を参照してください

  1. エンクレーブ・バージョン・スクリプトの内容でファイルを作成します

    enclave.so

    {

    global:

    g_global_data_sim;

    g_global_data;

    enclave_entry;

    g_peak_heap_used;

    g_peak_rsrv_mem_committed;

    local:

    *;

    };

  2. スクリプトをエンクレーブのソース・ディレクトリーに Enclave.lds という名前で保存します。
  3. エンクレーブをバージョンスクリプトにリンクし、次のように Makefile でシンボル__ImageBaseを定義します

    $ ld -o enclave.so file1.o file2.o \

    -pie -eenclave_entry -nostdlib -nodefaultlibs –nostartfiles --no-undefined \

    --whole-archive –lsgx_trts --no-whole-archive \

    --start-group –lsgx_tstdc ––lsgx_tservice -lsgx_crypto -

    -end-group \

    -Bstatic -Bsymbolic --defsym=__ImageBase=0 --exportdynamic \

    --version-script=enclave.lds

追加情報

Linux* 向け最新のインテル® Software Guard Extensions開発者リファレンス・ガイドは、インテル® Software Guard Extensions SDK for Linux* の最新リリースの ドキュメント セクションにあります。

関連製品

本記事の適用対象: 1 製品

すべて表示

このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。