@@ -65,8 +65,6 @@ use super::fpu::{FP_CONTROL_WORD_DEFAULT, FP_TAG_WORD_DEFAULT, MXCSR_DEFAULT};
6565use super :: gdb:: {
6666 DebugCommChannel , DebugMsg , DebugResponse , GuestDebug , MshvDebug , VcpuStopReason ,
6767} ;
68- #[ cfg( gdb) ]
69- use super :: handlers:: DbgMemAccessHandlerWrapper ;
7068#[ cfg( feature = "init-paging" ) ]
7169use super :: {
7270 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 {
9694 use super :: mshv_bindings:: hv_x64_exception_intercept_message;
9795 use super :: { HypervLinuxDriver , * } ;
9896 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 ;
10099 use crate :: { Result , new_error} ;
101100
102101 impl HypervLinuxDriver {
@@ -127,7 +126,7 @@ mod debug {
127126 pub ( crate ) fn process_dbg_request (
128127 & mut self ,
129128 req : DebugMsg ,
130- dbg_mem_access_fn : Arc < Mutex < dyn DbgMemAccessHandlerCaller > > ,
129+ dbg_mem_access_fn : Arc < Mutex < MemMgrWrapper < HostSharedMemory > > > ,
131130 ) -> Result < DebugResponse > {
132131 if let Some ( debug) = self . debug . as_mut ( ) {
133132 match req {
@@ -175,12 +174,9 @@ mod debug {
175174 . map_err ( |e| {
176175 new_error ! ( "Error locking at {}:{}: {}" , file!( ) , line!( ) , e)
177176 } ) ?
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 ( ) ;
184180
185181 Ok ( DebugResponse :: GetCodeSectionOffset ( offset as u64 ) )
186182 }
@@ -591,7 +587,7 @@ impl Hypervisor for HypervLinuxDriver {
591587 mem_mgr : MemMgrWrapper < HostSharedMemory > ,
592588 host_funcs : Arc < Mutex < FunctionRegistry > > ,
593589 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 > > > ,
595591 ) -> Result < ( ) > {
596592 self . mem_mgr = Some ( mem_mgr) ;
597593 self . host_funcs = Some ( host_funcs) ;
@@ -663,7 +659,7 @@ impl Hypervisor for HypervLinuxDriver {
663659 fn dispatch_call_from_host (
664660 & mut self ,
665661 dispatch_func_addr : RawPtr ,
666- #[ cfg( gdb) ] dbg_mem_access_fn : DbgMemAccessHandlerWrapper ,
662+ #[ cfg( gdb) ] dbg_mem_access_fn : Arc < Mutex < MemMgrWrapper < HostSharedMemory > > > ,
667663 ) -> Result < ( ) > {
668664 // Reset general purpose registers, then set RIP and RSP
669665 let regs = StandardRegisters {
@@ -1025,9 +1021,7 @@ impl Hypervisor for HypervLinuxDriver {
10251021 #[ cfg( gdb) ]
10261022 fn handle_debug (
10271023 & 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 > > > ,
10311025 stop_reason : VcpuStopReason ,
10321026 ) -> Result < ( ) > {
10331027 if self . debug . is_none ( ) {
0 commit comments