DescriptionIf a crash dump is created by calling CrashGenerationClient::RequestDump then getcontext() is called and on Linux this sets gregs[REG_ESP] to zero. Once the stack pointer is retrieved from gregs[REG_UESP] another problem is hit because the local variables in ExceptionHandler::WriteMinidump() consume more space than the 32 KB of stack saved. Fixing these can be done by setting gregs[REG_ESP] to gregs[REG_EBP] in order to get a good stack value that steps past the current function's local variables. A fix is available and has been in use at Valve for a few months now. The problem and fix are only known to exist/work on i386 so the code is restricted to that architecture. Patch Set 1 #
Total comments: 4
MessagesTotal messages: 4
|