Примечание: - Этот вопрос очень похож на Передача структуры C ++ в анклав из приложения в Intel SGX .Я публикую это снова, поскольку посту почти 1 год, надеясь, что может быть какое-то решение.Пожалуйста, удалите это, если считаете, что это дубликат.
Я занимаюсь разработкой приложения Intel SGX.У меня есть класс (называемый SkipList ) со структурой (называемой node ) внутри моего ненадежного приложения.Я пытаюсь передать эту структуру как * void **** с атрибутом ** [user_check] в анклав.
struct node {
size_t key;
T2 value;
vector<size_t> hashlabel;
vector<node*> forward;
};
Как только я получу это в анклаве, я произнесуэто в тип структуры, как показано ниже.
SkipList<int,string>::node* head = static_cast<SkipList<int,string>::node*>(Node);
Когда я начинаю отлаживать это, я вижу, что адрес «головы» после приведения является правильным (я проверил этот адрес и на стороне приложения, оба адреса одинаковы), а также адрес «форвард "член правильный.Но когда я пытаюсь увидеть элементы «вперед», я вижу только 1 элемент.На самом деле должно быть больше 15 элементов.
Может кто-нибудь сказать мне, если это проблема с реализацией векторов SGX STL?Почему я не могу видеть это, как ожидалось?