Ir al contenido principal
Base de conocimientos de asistencia

No se puede ver el uso del montón de un enclave al utilizar la herramienta sgx_emmt en Linux*

Tipo de contenido: Mensajes de error   |   ID del artículo: 000058606   |   Última revisión: 02/08/2024

Descripción

  • Depuró una aplicación de Intel® Software Guard Extensions (Intel® SGX) con sgx-gdb y sgx_emmt utilizada para ver el uso de memoria
  • Se muestra el uso de la pila, pero no se muestran el montón máximo y la memoria reservada confirmada:
    [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.

Resolución

De acuerdo con la sección Herramienta de medición de memoria de enclave de la Guía de referencia para desarrolladores de Intel® Software Guard Extensions (Intel® SGX) para Linux*, exporte los símbolos g_peak_heap_used y g_peak_rsrv_mem_committed en el script de versión del enclave y vincule la imagen del enclave con el script de versión como se describe a continuación.

Consulte SampleEnclave en el SDK de Intel SGX para reutilizar su Makefile y el script de versión, SampleEnclave/Enclave/Enclave.lds.

  1. Cree un archivo con el contenido del script de versión del enclave:

    enclave.so

    {

    global:

    g_global_data_sim;

    g_global_data;

    enclave_entry;

    g_peak_heap_used;

    g_peak_rsrv_mem_committed;

    local:

    *;

    };

  2. Guarde el script en el directorio de origen del enclave como Enclave.lds.
  3. Vincule el enclave con el script de versión y defina el símbolo __ImageBase en el Makefile, de manera similar a:

    $ 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

Más información

La más reciente Guía de referencia para desarrolladores de Intel® Software Guard Extensions Linux* se encuentra en la sección Documentación de la última versión de Intel® Software Guard Extensions SDK para Linux*.

Descargos de responsabilidad legales

El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.