3838 super :: gdb:: {
3939 DebugCommChannel , DebugMsg , DebugResponse , GuestDebug , HypervDebug , VcpuStopReason ,
4040 } ,
41- super :: handlers:: DbgMemAccessHandlerWrapper ,
4241 crate :: HyperlightError ,
43- crate :: hypervisor:: handlers:: DbgMemAccessHandlerCaller ,
42+ crate :: mem:: shared_mem:: HostSharedMemory ,
43+ crate :: sandbox:: mem_mgr:: MemMgrWrapper ,
4444} ;
4545
4646#[ cfg( feature = "trace_guest" ) ]
@@ -61,11 +61,9 @@ use crate::hypervisor::get_memory_access_violation;
6161use crate :: hypervisor:: wrappers:: WHvGeneralRegisters ;
6262use crate :: mem:: memory_region:: { MemoryRegion , MemoryRegionFlags } ;
6363use crate :: mem:: ptr:: { GuestPtr , RawPtr } ;
64- use crate :: mem:: shared_mem:: HostSharedMemory ;
6564#[ cfg( feature = "trace_guest" ) ]
6665use crate :: sandbox:: TraceInfo ;
6766use crate :: sandbox:: host_funcs:: FunctionRegistry ;
68- use crate :: sandbox:: mem_mgr:: MemMgrWrapper ;
6967use crate :: sandbox:: outb:: handle_outb;
7068#[ cfg( crashdump) ]
7169use crate :: sandbox:: uninitialized:: SandboxRuntimeConfig ;
@@ -80,7 +78,8 @@ mod debug {
8078 use super :: { HypervWindowsDriver , * } ;
8179 use crate :: Result ;
8280 use crate :: hypervisor:: gdb:: { DebugMsg , DebugResponse , VcpuStopReason , X86_64Regs } ;
83- use crate :: hypervisor:: handlers:: DbgMemAccessHandlerCaller ;
81+ use crate :: mem:: shared_mem:: HostSharedMemory ;
82+ use crate :: sandbox:: mem_mgr:: MemMgrWrapper ;
8483
8584 impl HypervWindowsDriver {
8685 /// Resets the debug information to disable debugging
@@ -110,7 +109,7 @@ mod debug {
110109 pub ( crate ) fn process_dbg_request (
111110 & mut self ,
112111 req : DebugMsg ,
113- dbg_mem_access_fn : Arc < Mutex < dyn DbgMemAccessHandlerCaller > > ,
112+ dbg_mem_access_fn : Arc < Mutex < MemMgrWrapper < HostSharedMemory > > > ,
114113 ) -> Result < DebugResponse > {
115114 if let Some ( debug) = self . debug . as_mut ( ) {
116115 match req {
@@ -158,12 +157,9 @@ mod debug {
158157 . map_err ( |e| {
159158 new_error ! ( "Error locking at {}:{}: {}" , file!( ) , line!( ) , e)
160159 } ) ?
161- . get_code_offset ( )
162- . map_err ( |e| {
163- log:: error!( "Failed to get code offset: {:?}" , e) ;
164-
165- e
166- } ) ?;
160+ . unwrap_mgr ( )
161+ . layout
162+ . get_guest_code_address ( ) ;
167163
168164 Ok ( DebugResponse :: GetCodeSectionOffset ( offset as u64 ) )
169165 }
@@ -606,7 +602,7 @@ impl Hypervisor for HypervWindowsDriver {
606602 mem_mgr : MemMgrWrapper < HostSharedMemory > ,
607603 host_funcs : Arc < Mutex < FunctionRegistry > > ,
608604 max_guest_log_level : Option < LevelFilter > ,
609- #[ cfg( gdb) ] dbg_mem_access_hdl : DbgMemAccessHandlerWrapper ,
605+ #[ cfg( gdb) ] dbg_mem_access_hdl : Arc < Mutex < MemMgrWrapper < HostSharedMemory > > > ,
610606 ) -> Result < ( ) > {
611607 self . mem_mgr = Some ( mem_mgr) ;
612608 self . host_funcs = Some ( host_funcs) ;
@@ -656,7 +652,7 @@ impl Hypervisor for HypervWindowsDriver {
656652 fn dispatch_call_from_host (
657653 & mut self ,
658654 dispatch_func_addr : RawPtr ,
659- #[ cfg( gdb) ] dbg_mem_access_hdl : DbgMemAccessHandlerWrapper ,
655+ #[ cfg( gdb) ] dbg_mem_access_hdl : Arc < Mutex < MemMgrWrapper < HostSharedMemory > > > ,
660656 ) -> Result < ( ) > {
661657 // Reset general purpose registers, then set RIP and RSP
662658 let regs = WHvGeneralRegisters {
@@ -959,7 +955,7 @@ impl Hypervisor for HypervWindowsDriver {
959955 #[ cfg( gdb) ]
960956 fn handle_debug (
961957 & mut self ,
962- dbg_mem_access_fn : Arc < Mutex < dyn DbgMemAccessHandlerCaller > > ,
958+ dbg_mem_access_fn : Arc < Mutex < MemMgrWrapper < HostSharedMemory > > > ,
963959 stop_reason : super :: gdb:: VcpuStopReason ,
964960 ) -> Result < ( ) > {
965961 if self . debug . is_none ( ) {
0 commit comments