target/cortex_a: fix temporary breakpoint during step
Commitbscan_tunnelc8926d1457
introduces the context and hybrid breakpoint types beside existing SW and HW types. The new field "asid" is non-zero only for these new types. The commit above did not properly initialize "asid" to 0 for a temporarily HW breakpoint used during single step. This causes cortex_a_unset_breakpoint() to identify this breakpoint as of type "hybrid". Identified through valgrind error: Conditional jump or move depends on uninitialised value(s) Actually valgrind triggers a total of 10 messages about use of uninitialized variables, but they are all caused by the first conditional jump bases on "asid != 0". Fixed by initializing "asid" to 0 in cortex_a_step(). Fixes:c8926d1457
("cortex_a hybrid & context breakpoints") Change-Id: Ib674d8457d1e02e10332fd9d73554d13719ef93d Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: http://openocd.zylin.com/4613 Tested-by: jenkins Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
parent
988a002a30
commit
cf81de7052
|
@ -1420,6 +1420,7 @@ static int cortex_a_step(struct target *target, int current, target_addr_t addre
|
|||
|
||||
/* Setup single step breakpoint */
|
||||
stepbreakpoint.address = address;
|
||||
stepbreakpoint.asid = 0;
|
||||
stepbreakpoint.length = (arm->core_state == ARM_STATE_THUMB)
|
||||
? 2 : 4;
|
||||
stepbreakpoint.type = BKPT_HARD;
|
||||
|
|
Loading…
Reference in New Issue