@@ -1039,41 +1039,37 @@ mod debug {
10391039 // Must be idempotent!
10401040 fn add_sw_breakpoint (
10411041 & mut self ,
1042- addr : u64 ,
1042+ gva : u64 ,
10431043 mem_access : & DebugMemoryAccess ,
10441044 ) -> crate :: Result < ( ) > {
1045- let addr = self . vm . translate_gva ( addr) ?;
1046-
10471045 // Check if breakpoint already exists
1048- if self . sw_breakpoints . contains_key ( & addr ) {
1046+ if self . sw_breakpoints . contains_key ( & gva ) {
10491047 return Ok ( ( ) ) ;
10501048 }
10511049
10521050 // Write breakpoint OP code to write to guest memory
10531051 let mut save_data = [ 0 ; SW_BP_SIZE ] ;
1054- self . read_addrs ( addr , & mut save_data[ ..] , mem_access) ?;
1055- self . write_addrs ( addr , & SW_BP , mem_access) ?;
1052+ self . read_addrs ( gva , & mut save_data[ ..] , mem_access) ?;
1053+ self . write_addrs ( gva , & SW_BP , mem_access) ?;
10561054
10571055 // Save guest memory to restore when breakpoint is removed
1058- self . sw_breakpoints . insert ( addr , save_data[ 0 ] ) ;
1056+ self . sw_breakpoints . insert ( gva , save_data[ 0 ] ) ;
10591057
10601058 Ok ( ( ) )
10611059 }
10621060
10631061 fn remove_sw_breakpoint (
10641062 & mut self ,
1065- addr : u64 ,
1063+ gva : u64 ,
10661064 mem_access : & DebugMemoryAccess ,
10671065 ) -> crate :: Result < ( ) > {
1068- let addr = self . vm . translate_gva ( addr) ?;
1069-
1070- if let Some ( saved_data) = self . sw_breakpoints . remove ( & addr) {
1066+ if let Some ( saved_data) = self . sw_breakpoints . remove ( & gva) {
10711067 // Restore saved data to the guest's memory
1072- self . write_addrs ( addr , & [ saved_data] , mem_access) ?;
1068+ self . write_addrs ( gva , & [ saved_data] , mem_access) ?;
10731069
10741070 Ok ( ( ) )
10751071 } else {
1076- Err ( new_error ! ( "The address: {:?} is not a sw breakpoint" , addr ) )
1072+ Err ( new_error ! ( "The address: {:?} is not a sw breakpoint" , gva ) )
10771073 }
10781074 }
10791075 }
0 commit comments