@@ -218,6 +218,16 @@ extern "C"
218218 } BNDebugAdapterTargetStatus ;
219219
220220
221+ typedef enum BNDebugBreakpointType
222+ {
223+ BNSoftwareBreakpoint = 0 , // Default software breakpoint
224+ BNHardwareExecuteBreakpoint = 1 , // Hardware execution breakpoint
225+ BNHardwareReadBreakpoint = 2 , // Hardware read watchpoint
226+ BNHardwareWriteBreakpoint = 3 , // Hardware write watchpoint
227+ BNHardwareAccessBreakpoint = 4 // Hardware read/write watchpoint
228+ } BNDebugBreakpointType ;
229+
230+
221231 typedef enum BNDebuggerEventType
222232 {
223233 LaunchEventType ,
@@ -522,6 +532,12 @@ extern "C"
522532 DEBUGGER_FFI_API bool BNDebuggerContainsRelativeBreakpoint (
523533 BNDebuggerController * controller , const char * module , uint64_t offset );
524534
535+ // Hardware breakpoint and watchpoint support
536+ DEBUGGER_FFI_API bool BNDebuggerAddHardwareBreakpoint (BNDebuggerController * controller , uint64_t address ,
537+ BNDebugBreakpointType type , size_t size );
538+ DEBUGGER_FFI_API bool BNDebuggerRemoveHardwareBreakpoint (BNDebuggerController * controller , uint64_t address ,
539+ BNDebugBreakpointType type , size_t size );
540+
525541 DEBUGGER_FFI_API uint64_t BNDebuggerGetIP (BNDebuggerController * controller );
526542 DEBUGGER_FFI_API uint64_t BNDebuggerGetLastIP (BNDebuggerController * controller );
527543 DEBUGGER_FFI_API bool BNDebuggerSetIP (BNDebuggerController * controller , uint64_t address );
0 commit comments