@@ -65,8 +65,6 @@ use super::fpu::{FP_CONTROL_WORD_DEFAULT, FP_TAG_WORD_DEFAULT, MXCSR_DEFAULT};
65
65
use super :: gdb:: {
66
66
DebugCommChannel , DebugMsg , DebugResponse , GuestDebug , MshvDebug , VcpuStopReason ,
67
67
} ;
68
- #[ cfg( gdb) ]
69
- use super :: handlers:: DbgMemAccessHandlerWrapper ;
70
68
#[ cfg( feature = "init-paging" ) ]
71
69
use super :: {
72
70
CR0_AM , CR0_ET , CR0_MP , CR0_NE , CR0_PE , CR0_PG , CR0_WP , CR4_OSFXSR , CR4_OSXMMEXCPT , CR4_PAE ,
@@ -96,7 +94,8 @@ mod debug {
96
94
use super :: mshv_bindings:: hv_x64_exception_intercept_message;
97
95
use super :: { HypervLinuxDriver , * } ;
98
96
use crate :: hypervisor:: gdb:: { DebugMsg , DebugResponse , VcpuStopReason , X86_64Regs } ;
99
- use crate :: hypervisor:: handlers:: DbgMemAccessHandlerCaller ;
97
+ use crate :: mem:: shared_mem:: HostSharedMemory ;
98
+ use crate :: sandbox:: mem_mgr:: MemMgrWrapper ;
100
99
use crate :: { Result , new_error} ;
101
100
102
101
impl HypervLinuxDriver {
@@ -127,7 +126,7 @@ mod debug {
127
126
pub ( crate ) fn process_dbg_request (
128
127
& mut self ,
129
128
req : DebugMsg ,
130
- dbg_mem_access_fn : Arc < Mutex < dyn DbgMemAccessHandlerCaller > > ,
129
+ dbg_mem_access_fn : Arc < Mutex < MemMgrWrapper < HostSharedMemory > > > ,
131
130
) -> Result < DebugResponse > {
132
131
if let Some ( debug) = self . debug . as_mut ( ) {
133
132
match req {
@@ -175,12 +174,9 @@ mod debug {
175
174
. map_err ( |e| {
176
175
new_error ! ( "Error locking at {}:{}: {}" , file!( ) , line!( ) , e)
177
176
} ) ?
178
- . get_code_offset ( )
179
- . map_err ( |e| {
180
- log:: error!( "Failed to get code offset: {:?}" , e) ;
181
-
182
- e
183
- } ) ?;
177
+ . unwrap_mgr ( )
178
+ . layout
179
+ . get_guest_code_address ( ) ;
184
180
185
181
Ok ( DebugResponse :: GetCodeSectionOffset ( offset as u64 ) )
186
182
}
@@ -591,7 +587,7 @@ impl Hypervisor for HypervLinuxDriver {
591
587
mem_mgr : MemMgrWrapper < HostSharedMemory > ,
592
588
host_funcs : Arc < Mutex < FunctionRegistry > > ,
593
589
max_guest_log_level : Option < LevelFilter > ,
594
- #[ cfg( gdb) ] dbg_mem_access_fn : DbgMemAccessHandlerWrapper ,
590
+ #[ cfg( gdb) ] dbg_mem_access_fn : Arc < Mutex < MemMgrWrapper < HostSharedMemory > > > ,
595
591
) -> Result < ( ) > {
596
592
self . mem_mgr = Some ( mem_mgr) ;
597
593
self . host_funcs = Some ( host_funcs) ;
@@ -663,7 +659,7 @@ impl Hypervisor for HypervLinuxDriver {
663
659
fn dispatch_call_from_host (
664
660
& mut self ,
665
661
dispatch_func_addr : RawPtr ,
666
- #[ cfg( gdb) ] dbg_mem_access_fn : DbgMemAccessHandlerWrapper ,
662
+ #[ cfg( gdb) ] dbg_mem_access_fn : Arc < Mutex < MemMgrWrapper < HostSharedMemory > > > ,
667
663
) -> Result < ( ) > {
668
664
// Reset general purpose registers, then set RIP and RSP
669
665
let regs = StandardRegisters {
@@ -1025,9 +1021,7 @@ impl Hypervisor for HypervLinuxDriver {
1025
1021
#[ cfg( gdb) ]
1026
1022
fn handle_debug (
1027
1023
& mut self ,
1028
- dbg_mem_access_fn : std:: sync:: Arc <
1029
- std:: sync:: Mutex < dyn super :: handlers:: DbgMemAccessHandlerCaller > ,
1030
- > ,
1024
+ dbg_mem_access_fn : Arc < Mutex < MemMgrWrapper < HostSharedMemory > > > ,
1031
1025
stop_reason : VcpuStopReason ,
1032
1026
) -> Result < ( ) > {
1033
1027
if self . debug . is_none ( ) {
0 commit comments