wut/include/coreinit/debug.h
Daniel K. O. (dkosmari) 9c656b7128 - Added WUT_FORMAT_PRINTF to catch format string errors in printf-like functions.
- Fixed a few format string bugs, in `libwhb/crash.c` and `wutdevoptab`, where there was a
  mismatch of specifiers and arguments that could lead to crashes.

- Made debug prints use `%p` when printing pointers.

--HG--
branch : printf-attribute-hg
2024-10-07 23:01:40 -03:00

109 lines
1.8 KiB
C

#pragma once
#include <wut.h>
/**
* \defgroup coreinit_debug Debug
* \ingroup coreinit
* @{
*/
#ifdef __cplusplus
extern "C" {
#endif
typedef void (*DisassemblyPrintFn)(const char *fmt, ...);
typedef uint32_t (*DisassemblyFindSymbolFn)(uint32_t addr, char *symbolNameBuf, uint32_t symbolNameBufSize);
typedef enum DisassemblePPCFlags
{
DISASSEMBLE_PPC_FLAGS_NONE = 0,
} DisassemblePPCFlags;
void
OSConsoleWrite(const char *msg,
uint32_t size);
void
__OSConsoleWrite(const char *msg,
uint32_t size);
void
OSReport(const char *fmt, ...)
WUT_FORMAT_PRINTF(1, 2);
void
OSReportVerbose(const char *fmt, ...)
WUT_FORMAT_PRINTF(1, 2);
void
OSReportInfo(const char *fmt, ...)
WUT_FORMAT_PRINTF(1, 2);
void
OSReportWarn(const char *fmt, ...)
WUT_FORMAT_PRINTF(1, 2);
void
OSPanic(const char *file,
uint32_t line,
const char *fmt, ...)
WUT_FORMAT_PRINTF(3, 4);
void
OSFatal(const char *msg);
uint32_t
OSGetSymbolName(uint32_t addr,
char *symbolNameBuf,
uint32_t symbolNameBufSize);
uint32_t
OSGetUPID();
BOOL
OSIsDebuggerInitialized();
BOOL
OSIsDebuggerPresent();
BOOL
OSIsECOBoot();
BOOL
OSIsECOMode();
void
__OSSetCrashRecovery(uint32_t crashRecovery);
uint32_t
__OSGetCrashRecovery();
BOOL
DisassemblePPCOpcode(uint32_t *opcode,
char *buffer,
uint32_t bufferSize,
DisassemblyFindSymbolFn findSymbolFn,
DisassemblePPCFlags flags);
void
DisassemblePPCRange(void *start,
void *end,
DisassemblyPrintFn printFn,
DisassemblyFindSymbolFn findSymbolFn,
DisassemblePPCFlags flags);
#ifdef __cplusplus
}
#endif
/** @} */