forked from auracaster/openocd
target: Change policy of removing watchpoints/breakpoints.
Now internal watch/breakpoint will not be removed in case of error during removing triggers from hardware. Also change signature of some functions (for deletion bp/wp) to print message in case of some error. Change-Id: I71cd1f556a33975005d0ee372fc384fddfddc3bf Signed-off-by: Kirill Radkin <kirill.radkin@syntacore.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7738 Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Tested-by: jenkins
This commit is contained in:
committed by
Antonio Borneo
parent
18281b0c49
commit
022e438292
@@ -50,15 +50,15 @@ struct watchpoint {
|
||||
int unique_id;
|
||||
};
|
||||
|
||||
void breakpoint_clear_target(struct target *target);
|
||||
int breakpoint_clear_target(struct target *target);
|
||||
int breakpoint_add(struct target *target,
|
||||
target_addr_t address, uint32_t length, enum breakpoint_type type);
|
||||
int context_breakpoint_add(struct target *target,
|
||||
uint32_t asid, uint32_t length, enum breakpoint_type type);
|
||||
int hybrid_breakpoint_add(struct target *target,
|
||||
target_addr_t address, uint32_t asid, uint32_t length, enum breakpoint_type type);
|
||||
void breakpoint_remove(struct target *target, target_addr_t address);
|
||||
void breakpoint_remove_all(struct target *target);
|
||||
int breakpoint_remove(struct target *target, target_addr_t address);
|
||||
int breakpoint_remove_all(struct target *target);
|
||||
|
||||
struct breakpoint *breakpoint_find(struct target *target, target_addr_t address);
|
||||
|
||||
@@ -68,11 +68,11 @@ static inline void breakpoint_hw_set(struct breakpoint *breakpoint, unsigned int
|
||||
breakpoint->number = hw_number;
|
||||
}
|
||||
|
||||
void watchpoint_clear_target(struct target *target);
|
||||
int watchpoint_clear_target(struct target *target);
|
||||
int watchpoint_add(struct target *target,
|
||||
target_addr_t address, uint32_t length,
|
||||
enum watchpoint_rw rw, uint64_t value, uint64_t mask);
|
||||
void watchpoint_remove(struct target *target, target_addr_t address);
|
||||
int watchpoint_remove(struct target *target, target_addr_t address);
|
||||
|
||||
/* report type and address of just hit watchpoint */
|
||||
int watchpoint_hit(struct target *target, enum watchpoint_rw *rw,
|
||||
@@ -84,4 +84,7 @@ static inline void watchpoint_set(struct watchpoint *watchpoint, unsigned int nu
|
||||
watchpoint->number = number;
|
||||
}
|
||||
|
||||
#define ERROR_BREAKPOINT_NOT_FOUND (-1600)
|
||||
#define ERROR_WATCHPOINT_NOT_FOUND (-1601)
|
||||
|
||||
#endif /* OPENOCD_TARGET_BREAKPOINTS_H */
|
||||
|
||||
Reference in New Issue
Block a user