Comment générer une image d’enclave avec les symboles qui sgx_emmt permettent de rapporter les données d’utilisation de la mémoire
- Débogage d’une application de Intel® Software Guard Extensions (Intel® SGX) avec sgx-gdb et utilisé sgx_emmt pour afficher l’utilisation de la mémoire
- L’utilisation de la pile est indiquée, mais le tas de pointe et la mémoire réservée validée ne sont pas affichés :
[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.
Conformément à la section Outil de mesure de la mémoire d’enclave du Guide de référence du développeur Intel® Software Guard Extensions (Intel® SGX) pour Linux*, exportez les symboles g_peak_heap_used et g_peak_rsrv_mem_committed dans le script de version de l’enclave et liez l’image d’enclave au script de version comme décrit ci-dessous.
Reportez-vous à SampleEnclave dans le Kit de développement logiciel (SDK) Intel SGX pour réutiliser son Makefile et son script de version, SampleEnclave/Enclave/Enclave.lds.
- Créez un fichier avec le contenu du script de version d’enclave :
enclave.so
{
global:
g_global_data_sim;
g_global_data;
enclave_entry;
g_peak_heap_used;
g_peak_rsrv_mem_committed;
local:
*;
};
- Enregistrez le script dans le répertoire source de l’enclave sous le nom Enclave.lds.
- Liez l’enclave au script de version et définissez le __ImageBase de symboles dans le Makefile, de la même manière que :
$ 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
Le guide de référence du développeur Intel® Software Guard Extensions le plus récent pour Linux* se trouve dans la section Documentation de la dernière version de Intel® Software Guard Extensions SDK pour Linux*.