mirror of
https://github.com/wiiu-env/CustomRPXLoader.git
synced 2024-11-22 01:49:16 +01:00
Only do logging when built with make DEBUG=1
This commit is contained in:
parent
1f14ff54a6
commit
fb32aec5b7
5
Makefile
5
Makefile
@ -47,6 +47,11 @@ CXXFLAGS := -std=c++20 -g -Wall -O2 -ffunction-sections -DESPRESSO -mcpu=750 -me
|
|||||||
ASFLAGS := -mregnames
|
ASFLAGS := -mregnames
|
||||||
LDFLAGS := -nostartfiles -Wl,--gc-sections,--allow-multiple-definition
|
LDFLAGS := -nostartfiles -Wl,--gc-sections,--allow-multiple-definition
|
||||||
|
|
||||||
|
ifeq ($(DEBUG),1)
|
||||||
|
CXXFLAGS += -DDEBUG -g
|
||||||
|
CCFLAGS += -DDEBUG -g
|
||||||
|
endif
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
Q := @
|
Q := @
|
||||||
MAKEFLAGS += --no-print-directory
|
MAKEFLAGS += --no-print-directory
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
/* coreinit */
|
/* coreinit */
|
||||||
IMPORT_BEGIN(coreinit);
|
IMPORT_BEGIN(coreinit);
|
||||||
|
|
||||||
|
IMPORT(OSReport);
|
||||||
IMPORT(OSScreenInit);
|
IMPORT(OSScreenInit);
|
||||||
IMPORT(OSScreenGetBufferSizeEx);
|
IMPORT(OSScreenGetBufferSizeEx);
|
||||||
IMPORT(OSScreenSetBufferEx);
|
IMPORT(OSScreenSetBufferEx);
|
||||||
|
28
src/main.cpp
28
src/main.cpp
@ -32,6 +32,8 @@
|
|||||||
|
|
||||||
#include <whb/log.h>
|
#include <whb/log.h>
|
||||||
#include <whb/log_udp.h>
|
#include <whb/log_udp.h>
|
||||||
|
#include <whb/log_cafe.h>
|
||||||
|
#include <whb/log_module.h>
|
||||||
#include <utils/StringTools.h>
|
#include <utils/StringTools.h>
|
||||||
|
|
||||||
#include "kernel.h"
|
#include "kernel.h"
|
||||||
@ -39,6 +41,7 @@
|
|||||||
#include "utils/logger.h"
|
#include "utils/logger.h"
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#include <coreinit/memexpheap.h>
|
#include <coreinit/memexpheap.h>
|
||||||
|
#include <coreinit/debug.h>
|
||||||
|
|
||||||
bool doRelocation(const std::vector<RelocationData> &relocData, relocation_trampolin_entry_t *tramp_data, uint32_t tramp_length);
|
bool doRelocation(const std::vector<RelocationData> &relocData, relocation_trampolin_entry_t *tramp_data, uint32_t tramp_length);
|
||||||
|
|
||||||
@ -68,6 +71,11 @@ bool CheckRunning() {
|
|||||||
extern "C" void __init_wut();
|
extern "C" void __init_wut();
|
||||||
extern "C" void __fini_wut();
|
extern "C" void __fini_wut();
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
bool module_log = false;
|
||||||
|
bool udp_log = false;
|
||||||
|
bool cafe_log = false;
|
||||||
|
#endif // DEBUG
|
||||||
extern "C" int _start(int argc, char **argv) {
|
extern "C" int _start(int argc, char **argv) {
|
||||||
doKernelSetup();
|
doKernelSetup();
|
||||||
InitFunctionPointers();
|
InitFunctionPointers();
|
||||||
@ -75,15 +83,27 @@ extern "C" int _start(int argc, char **argv) {
|
|||||||
|
|
||||||
__init_wut();
|
__init_wut();
|
||||||
|
|
||||||
WHBLogUdpInit();
|
|
||||||
|
|
||||||
// Save last entry on mem2 heap to detect leaked memory
|
// Save last entry on mem2 heap to detect leaked memory
|
||||||
MEMHeapHandle mem2_heap_handle = MEMGetBaseHeapHandle(MEM_BASE_HEAP_MEM2);
|
MEMHeapHandle mem2_heap_handle = MEMGetBaseHeapHandle(MEM_BASE_HEAP_MEM2);
|
||||||
auto heap = (MEMExpHeap *) mem2_heap_handle;
|
auto heap = (MEMExpHeap *) mem2_heap_handle;
|
||||||
MEMExpHeapBlock *memory_start = heap->usedList.tail;
|
MEMExpHeapBlock *memory_start = heap->usedList.tail;
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
if (!(module_log = WHBLogModuleInit())) {
|
||||||
|
cafe_log = WHBLogCafeInit();
|
||||||
|
udp_log = WHBLogUdpInit();
|
||||||
|
}
|
||||||
|
#endif // DEBUG
|
||||||
|
DEBUG_FUNCTION_LINE("Hello from CustomRPXloader");
|
||||||
|
|
||||||
uint32_t entrypoint = do_start(argc, argv);
|
uint32_t entrypoint = do_start(argc, argv);
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
if (module_log) { WHBLogModuleDeinit(); }
|
||||||
|
if (udp_log) { WHBLogUdpDeinit(); }
|
||||||
|
if (cafe_log) { WHBLogCafeDeinit(); }
|
||||||
|
#endif // DEBUG
|
||||||
|
|
||||||
// free leaked memory
|
// free leaked memory
|
||||||
if (memory_start) {
|
if (memory_start) {
|
||||||
int leak_count = 0;
|
int leak_count = 0;
|
||||||
@ -95,11 +115,9 @@ extern "C" int _start(int argc, char **argv) {
|
|||||||
free(&memory_end[1]);
|
free(&memory_end[1]);
|
||||||
leak_count++;
|
leak_count++;
|
||||||
}
|
}
|
||||||
DEBUG_FUNCTION_LINE("Freed %d leaked memory blocks", leak_count);
|
OSReport("Freed %d leaked memory blocks\n", leak_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
WHBLogUdpDeinit();
|
|
||||||
|
|
||||||
__fini_wut();
|
__fini_wut();
|
||||||
|
|
||||||
if (entrypoint > 0) {
|
if (entrypoint > 0) {
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
|
||||||
#define __FILENAME_X__ (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)
|
#define __FILENAME_X__ (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)
|
||||||
#define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILENAME_X__)
|
#define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILENAME_X__)
|
||||||
|
|
||||||
@ -14,6 +16,19 @@ extern "C" {
|
|||||||
WHBLogPrintf("[%23s]%30s@L%04d: " FMT "",__FILENAME__,__FUNCTION__, __LINE__, ## ARGS); \
|
WHBLogPrintf("[%23s]%30s@L%04d: " FMT "",__FILENAME__,__FUNCTION__, __LINE__, ## ARGS); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
#define DEBUG_FUNCTION_LINE_WRITE(FMT, ARGS...)do { \
|
||||||
|
WHBLogWritef("[%23s]%30s@L%04d: " FMT "",__FILENAME__,__FUNCTION__, __LINE__, ## ARGS); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define DEBUG_FUNCTION_LINE(FMT, ARGS...) while (0)
|
||||||
|
|
||||||
|
#define DEBUG_FUNCTION_LINE_WRITE(FMT, ARGS...) while (0)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user