Custom Query (81 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (40 - 42 of 81)

Ticket Resolution Summary Owner Reporter
#76 fixed Support guard page exceptions dmik
Description

Currently, Odin doesn't deliver EXCEPTION_GUARD_PAGE_VIOLATION exceptions when accessing memory pages marked by VirtualProtect() as PAGE_GUARD to the application. This needs to be fixed. In particular, it is used in OpenJDK to implement the stack yellow and red zones (to have the better control on "out of stack" situations).

#77 fixed Fix stack size interpretation in CreateThread(). dmik
Description

Currently, the stack size passed to CreateThread() is interpreted as the whole (maximum) stack size. Ноwever under real Windows, according to MSDN, this parameter by default specifies the size of the pre-committed area on top of the stack; the whole stack size is defined by the PE header in this case (1 MB by default). In order to override the header, the STACK_SIZE_PARAM_IS_A_RESERVATION flag must be used, so that the stack size in CreateThread() will define the whole area.

#82 fixed Make SEH work in OS/2 context dmik
Description

The current implementation of SEH (__try/__except) requires Odin to force the Win32 TIB switch mode in which the FS register points to the Win32 thread information block instead of the OS/2 one.

This mode is the default in Odin if it runs a Win32 binary as this is what the binary expects and needs. But in cases when we build Win32 apps from sources there is actually no sense in maintaining this FS context switch from OS/2 to Win32 and back. Even if the Win32 application not only uses __try/__except but also accesses FS directly, it can always be tailored with #ifdef (we can access the Win32 TIB with GetThreadTEB() regardless of the real FS value).

Switching FS may even be dangerous in some cases and this especially relates to situations when Win32 code calls OS/2 code and vice versa: the called party may not expect a wrong context (if e.g. it does its own exception handling since this is what FS is used mostly for). In either case, maintaining the context switch is error-prone per se due its complexity (you may look at e.g. sehutil.s to see it).

Batch Modify
Note: See TracBatchModify for help on using batch modify.
Note: See TracQuery for help on using queries.