Conversation
|
Also you may need to build with |
|
huh CI broke because the address of the return address that I'm deriving from the frame pointer is unaligned. We could "fix" this by replacing the new |
|
This only seems to affect things below |
|
It seems like permissive mode isn't working when I build against your branch. I'm seeing segfaults on the cross-compartment memory accesses, and nothing is being printed to the log. I tested against main and permissive mode works as expected there, so the issue shouldn't be with my setup, but it's possible I'm doing something wrong still. |
5653188 to
0a7d7e7
Compare
|
|
The local_addr field was used to save the address of the signal handler stack to debug permissive mode itself.
Seems like crt functions don't follow the SysV ABI as strictly since stack frames below `main` sometimes lead to dereferencing unaligned frame pointers.
e583149 to
c2aaf80
Compare
This turned out to be easier to implement than labeling the /proc/pid/maps entries w/o changes across the runtime codebase so I pushed it separately since these changes are contained to permissive_mode.h. @randomPoison I tested manually by tweaking our tests but permissive mode doesn't interact well with criterion so it was pretty limited testing. Could you run this on the zlib demo and post the result? Closes #406.