mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2025-12-27 01:35:06 +01:00
Let x86 stackwalker scan stack in cases where program evaluation fails. Original patch by Jeff Muizelaar <jmuizelaar@mozilla.com> with some changes by me. r=mento at http://breakpad.appspot.com/32003/show
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@409 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
parent
760d66430e
commit
8d70618ffc
7 changed files with 161 additions and 27 deletions
|
|
@ -70,6 +70,19 @@ class StackwalkerX86 : public Stackwalker {
|
|||
const CallStack *stack,
|
||||
const vector< linked_ptr<StackFrameInfo> > &stack_frame_info);
|
||||
|
||||
// Scan the stack starting at location_start, looking for an address
|
||||
// that looks like a valid instruction pointer. Addresses must
|
||||
// 1) be contained in the current stack memory
|
||||
// 2) pass the checks in Stackwalker::InstructionAddressSeemsValid
|
||||
//
|
||||
// Returns true if a valid-looking instruction pointer was found.
|
||||
// When returning true, sets location_found to the address at which
|
||||
// the value was found, and eip_found to the value contained at that
|
||||
// location in memory.
|
||||
bool ScanForReturnAddress(u_int32_t location_start,
|
||||
u_int32_t &location_found,
|
||||
u_int32_t &eip_found);
|
||||
|
||||
// Stores the CPU context corresponding to the innermost stack frame to
|
||||
// be returned by GetContextFrame.
|
||||
const MDRawContextX86 *context_;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue