intel / intel/confidential-computing.sgx.sdk

Core dump support

Open
#1 2 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
2
Forks
3
PR merge metrics
No merged PRs in 30d

Description

Currently, the core dump file doesn't give much useful information. For example, the following code in enclave:

```c
int get_number() {
int *p = reinterpret_cast(0xdeadbeef);
return *p;
}
```

If you run with `sgx-gdb`, that's fine, you can see the line number:

```
(gdb) r
Starting program: ./app
...
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff5800515 in get_number () at Enclave/Enclave.cpp:6
6 return *p;
(gdb) bt
#0 0x00007ffff5800515 in get_number () at Enclave/Enclave.cpp:6
intel/confidential-computing.sgx#1 0x00007ffff58004f7 in sgx_get_number (pms=0x7fffffffdee0) at Enclave/Enclave_t.c:31
intel/confidential-computing.sgx#2 0x00007ffff5800b30 in do_ecall ()
intel/confidential-computing.sgx#3 0x00007ffff5800988 in enter_enclave ()
intel/confidential-computing.sgx#4 0x00007ffff5801976 in enclave_entry ()
intel/confidential-computing.sgx#5 0x00007ffff7bbe2a2 in __morestack () from /usr/lib/libsgx_urts.so
intel/confidential-computing.sgx#6 0x00007ffff7bc364e in do_ecall(int, void const*, void const*, CTrustThread*) () from /usr/lib/libsgx_urts.so
intel/confidential-computing.sgx#7 0x00007ffff7bc07e9 in CEnclave::ecall(int, void const*, void*) () from /usr/lib/libsgx_urts.so
intel/confidential-computing.sgx#8 0x00007ffff7bc19d8 in sgx_ecall () from /usr/lib/libsgx_urts.so
intel/confidential-computing.sgx#9 0x00000000004007a4 in get_number (eid=2, retval=0x7fffffffdf18) at App/Enclave_u.c:19
intel/confidential-computing.sgx#10 0x000000000040088b in main (argc=1, argv=0x7fffffffe418) at App/App.cpp:21
```

But if you run it then look into the core dump file, you can only get:

```
Core was generated by `./app'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 __GI_raise (sig=) at ../sysdeps/unix/sysv/linux/raise.c:58
58 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 __GI_raise (sig=) at ../sysdeps/unix/sysv/linux/raise.c:58
intel/confidential-computing.sgx#1 0x00007fc975ee3492 in sig_handler(int, siginfo_t*, void*) () from /usr/lib/libsgx_urts.so
intel/confidential-computing.sgx#2
intel/confidential-computing.sgx#3 0x00007fc975ede2ed in __morestack () from /usr/lib/libsgx_urts.so
intel/confidential-computing.sgx#4 0x00007fc975ee364e in do_ecall(int, void const*, void const*, CTrustThread*) () from /usr/lib/libsgx_urts.so
intel/confidential-computing.sgx#5 0x00007fc975ee07e9 in CEnclave::ecall(int, void const*, void*) () from /usr/lib/libsgx_urts.so
intel/confidential-computing.sgx#6 0x00007fc975ee19d8 in sgx_ecall () from /usr/lib/libsgx_urts.so
intel/confidential-computing.sgx#7 0x00000000004007a4 in get_number (eid=2, retval=0x7ffda235faa8) at App/Enclave_u.c:19
intel/confidential-computing.sgx#8 0x000000000040088b in main (argc=1, argv=0x7ffda235ffa8) at App/App.cpp:21
```

Is there any chance to enhance the core dump file support? Thanks!

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.