zeo at logicplant.com
Thu Oct 15 23:05:00 PDT 2009
I'm currently looking at the source code for WINCE port.
In Collector.cpp, getStackBase() scans through the memory pages using IsPageWritable() to guess the base of the stack.
But isn't it more precise to use GetThreadCallStack() instead?
By using GetThreadCallStack(), one can get all the stack frames. The CallSnapshotEx structure which is filled by GetThreadCallStack() for each stack frame has dwFramePtr member, and that member's value of the last stack frame can be used to indicate the base of the stack of the thread.
Has GetThreadCallStack() been considered and decided not to be used?
Maybe the performance issue?
What is the reason to disable it?
For ARM processor, I tried to fill some platform-specific portion in Collector.cpp for WINCE, and after that, it was compiled successfully with ENABLE_JSC_MULTIPLE_THREADS set to 1. (getStackBase() mentioned above must be changed not to use global variables for this). But I haven't tested it since I cannot build the remaining modules for WINCE port(WebCore, WebKit etc.) for now.
Is there any complex problems? (Maybe the performance issue?)
Thanks in advance.
More information about the webkit-dev