On Wed, 30 Oct 2019, Alexandre Julliard wrote:
Martin Storsjö martin@martin.st writes:
On Tue, 29 Oct 2019, Andrew Wesie wrote:
On Tue, Oct 29, 2019 at 9:04 AM Martin Storsjo martin@martin.st wrote:
... Therefore, exception handling in executables with libunwind on i686 doesn't work when run with wine within docker.
I personally don't think this is a great rationale for changing the behavior of wine. It sounds like a rationale for docker to allow SYS_PTRACE.
It can be enabled, but it's not generally enabled by default.
In any case: I believe it is fair to hope that EnumProcessModules(GetCurrentProcess()) would work, without privileges that let you read the memory of other processes.
Not being able to use ptrace isn't a very interesting case, particularly if you are talking about exception handling, since you'll also need ptrace for the debug registers.
Hmm, are the debug registers used somewhere in exception unwinding? SEH based exception handling works fine without ptrace at the moment.
I don't think it's worth adding complicated workarounds for this.
Ok, fair enough.
I presume you're not willing to add a special case directly within EnumProcessModules either? That has much less risk of vaguely changing semantics of other functions, but it does add a bit of code duplication though.
// Martin