Generieren eines Enklavenbildes mit den Symbolen, die es sgx_emmt ermöglichen, Speichernutzungsdaten zu melden
- Debuggte eine Intel® Software Guard Extensions (Intel® SGX) Anwendung mit sgx-gdb und verwendete sgx_emmt zum Anzeigen der Speicherauslastung
- Die Stack-Nutzung wird angezeigt, aber der Spitzen-Heap und der zugesicherte reservierte Speicher werden nicht angezeigt:
[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.
Exportieren Sie gemäß dem Abschnitt "Enclave Memory Measurement Tool" des Intel® Software Guard Extensions (Intel® SGX) Developer Reference Guide für Linux* die Symbole g_peak_heap_used und g_peak_rsrv_mem_committed im Versionsskript der Enklave und verknüpfen Sie das Enklavenbild wie unten beschrieben mit dem Versionsskript.
Beziehen Sie sich auf die SampleEnclave im Intel SGX SDK, um das Makefile und das Versionsskript SampleEnclave/Enclave/Enclave.lds wiederzuverwenden.
- Erstellen Sie eine Datei mit dem Inhalt des Skripts der Enklavenversion:
enclave.so
{
global:
g_global_data_sim;
g_global_data;
enclave_entry;
g_peak_heap_used;
g_peak_rsrv_mem_committed;
local:
*;
};
- Speichern Sie das Skript im Quellverzeichnis der Enklave als Enclave.lds.
- Verknüpfen Sie die Enklave mit dem Versionsskript und definieren Sie das Symbol __ImageBase im Makefile, ähnlich wie:
$ 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
Das neueste Intel® Software Guard Extensions Developer Reference Guide für Linux* finden Sie im Abschnitt Dokumentation der neuesten Version im Intel® Software Guard Extensions SDK für Linux*.