SGX踩坑记录(更新中)

遇到了一个SGX的项目,第一次接触,两眼一抹黑,又不想读官方文档,踩了坑就百度。做个踩坑记录,以防二次犯蠢。

一、安装

我的电脑不支持sgx,但是实验室有,希望可以在自己的电脑上模拟一个,但目前为止的尝试都失败了

1. 虚拟机

尝试了很多教程,还是这篇从头到尾没有报错,但是最终跑不了项目,后来发现即使是虚拟机也还是需要主机对sgx的支持

2. sgx模拟器

后来我查到如果硬件不支持SGX,在SGX的sdk中有模拟器,2023.9.26尝试的时候,官网上已经没有sgx在windows的sdk安装包了;其他途径下载的sdk安装程序,运行到一半就退出了,啥都没有。

二、编程 Illegal Instruction

之后就只能在实验室的电脑上测试程序了

  1. 指针数组
    不允许new指针数组
    eg.自定义结构体* hashMap = new 自定义结构体[数量];
  2. 库函数里涉及内核态的语句
    被调用的函数不用在edl文件里声明,但是只能在用户态,内部不能出现涉及内核态的语句,例如new
  3. 内存不够 其他队员踩的坑
    SGX数据规模大的时候,如果可以,把数据分组进行计算,需要显式释放中间变量(注意delete和free的分别)
    数据量大的时候,尽量不要新建中间数组变量
    发现只能用5MB的时候,就知道一定是设置错了,实例的项目中对于空间要求不大,所以设置的比较小,需要在配置文件(.config.xml)中改设置,<HeapMaxSize>这一项的内容用十六进制改大,我改成了0x8000000。应该是不能超过规定的128M
  4. 重复new相同变量名的变量
    在循环中若需要new一个变量,需要在每次循环结束前delete掉,如果可以,直接不在循环里new
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunny_cube

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值