breakpoints: fix error handling
do not try to interpret "retval" into a string, just amend a bit about the context of the already reported error. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
This commit is contained in:
parent
1b0f194d90
commit
4a47d87e47
|
@ -46,7 +46,6 @@ int breakpoint_add(struct target *target, uint32_t address, uint32_t length, enu
|
||||||
{
|
{
|
||||||
struct breakpoint *breakpoint = target->breakpoints;
|
struct breakpoint *breakpoint = target->breakpoints;
|
||||||
struct breakpoint **breakpoint_p = &target->breakpoints;
|
struct breakpoint **breakpoint_p = &target->breakpoints;
|
||||||
char *reason;
|
|
||||||
int retval;
|
int retval;
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
|
@ -77,19 +76,9 @@ int breakpoint_add(struct target *target, uint32_t address, uint32_t length, enu
|
||||||
(*breakpoint_p)->unique_id = bpwp_unique_id++;
|
(*breakpoint_p)->unique_id = bpwp_unique_id++;
|
||||||
|
|
||||||
retval = target_add_breakpoint(target, *breakpoint_p);
|
retval = target_add_breakpoint(target, *breakpoint_p);
|
||||||
switch (retval) {
|
if (retval != ERROR_OK)
|
||||||
case ERROR_OK:
|
{
|
||||||
break;
|
LOG_ERROR("could not add breakpoint");
|
||||||
case ERROR_TARGET_RESOURCE_NOT_AVAILABLE:
|
|
||||||
reason = "resource not available";
|
|
||||||
goto fail;
|
|
||||||
case ERROR_TARGET_NOT_HALTED:
|
|
||||||
reason = "target running";
|
|
||||||
goto fail;
|
|
||||||
default:
|
|
||||||
reason = "unknown reason";
|
|
||||||
fail:
|
|
||||||
LOG_ERROR("can't add breakpoint: %s", reason);
|
|
||||||
free((*breakpoint_p)->orig_instr);
|
free((*breakpoint_p)->orig_instr);
|
||||||
free(*breakpoint_p);
|
free(*breakpoint_p);
|
||||||
*breakpoint_p = NULL;
|
*breakpoint_p = NULL;
|
||||||
|
@ -185,7 +174,6 @@ int watchpoint_add(struct target *target, uint32_t address, uint32_t length,
|
||||||
struct watchpoint *watchpoint = target->watchpoints;
|
struct watchpoint *watchpoint = target->watchpoints;
|
||||||
struct watchpoint **watchpoint_p = &target->watchpoints;
|
struct watchpoint **watchpoint_p = &target->watchpoints;
|
||||||
int retval;
|
int retval;
|
||||||
char *reason;
|
|
||||||
|
|
||||||
while (watchpoint)
|
while (watchpoint)
|
||||||
{
|
{
|
||||||
|
@ -216,21 +204,11 @@ int watchpoint_add(struct target *target, uint32_t address, uint32_t length,
|
||||||
(*watchpoint_p)->unique_id = bpwp_unique_id++;
|
(*watchpoint_p)->unique_id = bpwp_unique_id++;
|
||||||
|
|
||||||
retval = target_add_watchpoint(target, *watchpoint_p);
|
retval = target_add_watchpoint(target, *watchpoint_p);
|
||||||
switch (retval) {
|
if (retval != ERROR_OK)
|
||||||
case ERROR_OK:
|
{
|
||||||
break;
|
LOG_ERROR("can't add %s watchpoint at 0x%8.8" PRIx32,
|
||||||
case ERROR_TARGET_RESOURCE_NOT_AVAILABLE:
|
|
||||||
reason = "resource not available";
|
|
||||||
goto bye;
|
|
||||||
case ERROR_TARGET_NOT_HALTED:
|
|
||||||
reason = "target running";
|
|
||||||
goto bye;
|
|
||||||
default:
|
|
||||||
reason = "unrecognized error";
|
|
||||||
bye:
|
|
||||||
LOG_ERROR("can't add %s watchpoint at 0x%8.8" PRIx32 ", %s",
|
|
||||||
watchpoint_rw_strings[(*watchpoint_p)->rw],
|
watchpoint_rw_strings[(*watchpoint_p)->rw],
|
||||||
address, reason);
|
address);
|
||||||
free (*watchpoint_p);
|
free (*watchpoint_p);
|
||||||
*watchpoint_p = NULL;
|
*watchpoint_p = NULL;
|
||||||
return retval;
|
return retval;
|
||||||
|
|
Loading…
Reference in New Issue