Fixing breakpoints.
This commit is contained in:
@@ -45,7 +45,8 @@ void CodeBreakpoint::ForEachHostAddress(
|
||||
// TODO(benvanik): other function types.
|
||||
assert_true(function->is_guest());
|
||||
auto guest_function = reinterpret_cast<cpu::GuestFunction*>(function);
|
||||
uintptr_t host_address = guest_function->MapSourceToCode(guest_address);
|
||||
uintptr_t host_address =
|
||||
guest_function->MapGuestAddressToMachineCode(guest_address);
|
||||
assert_not_zero(host_address);
|
||||
callback(host_address);
|
||||
}
|
||||
|
||||
@@ -608,7 +608,7 @@ void DebugWindow::DrawGuestFunctionSource() {
|
||||
}
|
||||
|
||||
while (source_map_index < source_map.size() &&
|
||||
source_map[source_map_index].source_offset != address) {
|
||||
source_map[source_map_index].guest_address != address) {
|
||||
++source_map_index;
|
||||
}
|
||||
if (source_map_index < source_map.size()) {
|
||||
@@ -1423,13 +1423,14 @@ void DebugWindow::DrawBreakpointsPane() {
|
||||
assert_not_null(function);
|
||||
if (code_breakpoint->address_type() ==
|
||||
CodeBreakpoint::AddressType::kGuest) {
|
||||
NavigateToFunction(
|
||||
code_breakpoint->guest_function(),
|
||||
code_breakpoint->guest_address(),
|
||||
function->MapSourceToCode(code_breakpoint->guest_address()));
|
||||
NavigateToFunction(code_breakpoint->guest_function(),
|
||||
code_breakpoint->guest_address(),
|
||||
function->MapGuestAddressToMachineCode(
|
||||
code_breakpoint->guest_address()));
|
||||
} else {
|
||||
NavigateToFunction(function, function->MapCodeToSource(
|
||||
code_breakpoint->host_address()),
|
||||
NavigateToFunction(function,
|
||||
function->MapMachineCodeToGuestAddress(
|
||||
code_breakpoint->host_address()),
|
||||
code_breakpoint->host_address());
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user