OSSetDABR

Syntax

#include <cafe/os/OSException.h>

void OSSetDABR(BOOL allCores, void* address, BOOL matchReads, BOOL matchWrites);

Parameters

allCores TRUE if DABR should be set across all cores (see below).
address Address to trigger for DABR (see below).
matchReads Trigger on a read from address.
matchWrites Trigger on a write to address.

Return Values

None.

Description

For help tracking down COS memory corruption issues, this function sets the PowerPC's Data Access Breakpoint Register (DABR) in development mode only. The function result applies on the core on which the function is invoked, unless allCores is TRUE. If allCores is TRUE, the function result applies across all cores, but asynchronously. The function will cause a crash with a stack trace if the criteria "match" within the 8-byte-aligned boundary of the address. If both matchReads and matchWrites are FALSE then the DABR is deactivated. The function takes approximately 200+ cycles to run on the invoking core. OSSetDABR is helpful if a developer has discovered that an extremely narrow, 8-byte range of memory is being modified.

Do Not Call From

Multiple threads This function is not thread-safe.

Revision History

2013/05/08 Automated cleanup pass.
2012/10/03 Initial Version.


CONFIDENTIAL