aboutsummaryrefslogtreecommitdiff
path: root/src/processor
diff options
context:
space:
mode:
Diffstat (limited to 'src/processor')
-rw-r--r--src/processor/stackwalker_x86.cc12
-rw-r--r--src/processor/stackwalker_x86.h4
2 files changed, 8 insertions, 8 deletions
diff --git a/src/processor/stackwalker_x86.cc b/src/processor/stackwalker_x86.cc
index 747b5e3a..f24667c9 100644
--- a/src/processor/stackwalker_x86.cc
+++ b/src/processor/stackwalker_x86.cc
@@ -317,7 +317,7 @@ StackFrame* StackwalkerX86::GetCallerFrame(const CallStack *stack) {
// frame pointer.
u_int32_t location_start = last_frame->context.esp;
u_int32_t location, eip;
- if (!ScanForReturnAddress(location_start, location, eip)) {
+ if (!ScanForReturnAddress(location_start, &location, &eip)) {
// if we can't find an instruction pointer even with stack scanning,
// give up.
return NULL;
@@ -360,7 +360,7 @@ StackFrame* StackwalkerX86::GetCallerFrame(const CallStack *stack) {
// looking one 32-bit word above that location.
u_int32_t location_start = dictionary[".raSearchStart"] + 4;
u_int32_t location;
- if (ScanForReturnAddress(location_start, location, eip)) {
+ if (ScanForReturnAddress(location_start, &location, &eip)) {
// This is a better return address that what program string
// evaluation found. Use it, and set %esp to the location above the
// one where the return address was found.
@@ -450,8 +450,8 @@ StackFrame* StackwalkerX86::GetCallerFrame(const CallStack *stack) {
}
bool StackwalkerX86::ScanForReturnAddress(u_int32_t location_start,
- u_int32_t &location_found,
- u_int32_t &eip_found) {
+ u_int32_t *location_found,
+ u_int32_t *eip_found) {
const int kRASearchWords = 15;
for (u_int32_t location = location_start;
location <= location_start + kRASearchWords * 4;
@@ -463,8 +463,8 @@ bool StackwalkerX86::ScanForReturnAddress(u_int32_t location_start,
if (modules_ && modules_->GetModuleForAddress(eip) &&
InstructionAddressSeemsValid(eip)) {
- eip_found = eip;
- location_found = location;
+ *eip_found = eip;
+ *location_found = location;
return true;
}
}
diff --git a/src/processor/stackwalker_x86.h b/src/processor/stackwalker_x86.h
index f77c6db8..255c16b3 100644
--- a/src/processor/stackwalker_x86.h
+++ b/src/processor/stackwalker_x86.h
@@ -79,8 +79,8 @@ class StackwalkerX86 : public Stackwalker {
// 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);
+ 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.