-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add stack traces to permissive mode logs #434
base: main
Are you sure you want to change the base?
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.