문서 ID: 000058606 콘텐츠 형태: 오류 메시지 마지막 검토일: 2024-08-02

Linux*에서 sgx_emmt 도구를 사용할 때 엔클레이브의 힙 사용량을 볼 수 없음

BUILT IN - ARTICLE INTRO SECOND COMPONENT
요약

메모리 사용량 현황 데이터를 보고할 수 있도록 sgx_emmt하는 기호가 있는 엔클레이브 이미지를 생성하는 방법

설명
  • sgx-gdb로 인텔® Software Guard Extensions(인텔® SGX) 응용 프로그램을 디버깅하고 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.
해결 방법

Linux*용 인텔® Software Guard Extensions(인텔® SGX) 개발자 참조 가이드엔클레이브 메모리 측정 도구 섹션에 따라 엔클레이브의 버전 스크립트에서 기호 g_peak_heap_usedg_peak_rsrv_mem_committed내보내고 아래 설명된 대로 엔클레이브 이미지를 버전 스크립트와 연결합니다.

인텔 SGX SDK의 SampleEnclave를 참조하여 메이크파일 및 버전 스크립트인 SampleEnclave/Enclave.lds를 다시 사용합니다.

  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의 원본 디렉터리에 스크립트를 Enclave.lds저장합니다.
  3. enclave를 버전 스크립트와 연결하고 다음과 유사하게 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 개발자 참조 안내서는 Linux*용 인텔® Software Guard Extensions SDK 최신 릴리스의 설명서 섹션에 있습니다.

관련 제품

이 문서는 다음 항목에 적용됩니다. 1 제품

이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.