From f54b46149d9e3280af36030ca622c34be4568ad0 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 14 Mar 2023 01:41:47 +0200 Subject: [PATCH] Update debugging code --- Core/Memory/Memory.cpp | 77 ++++++++++++++++++++++++++++++------------ Library/Convert.cpp | 35 +++++++++++++------ 2 files changed, 80 insertions(+), 32 deletions(-) diff --git a/Core/Memory/Memory.cpp b/Core/Memory/Memory.cpp index 807e436..fd40897 100644 --- a/Core/Memory/Memory.cpp +++ b/Core/Memory/Memory.cpp @@ -288,14 +288,17 @@ void *HeapMalloc(size_t Size) #ifdef DEBUG if (EnableExternalMemoryTracer) { - mExtTrkLock.TimeoutLock(__FUNCTION__, 100000); + char LockTmpStr[64]; + strcpy_unsafe(LockTmpStr, __FUNCTION__); + strcat_unsafe(LockTmpStr, "_memTrk"); + mExtTrkLock.TimeoutLock(LockTmpStr, 10000); sprintf(mExtTrkLog, "malloc( %ld )=%p-%p~%p\n\r", Size, ret, (void *)((uintptr_t)ret + Size), __builtin_return_address(0)); UniversalAsynchronousReceiverTransmitter::UART mTrkUART = UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM3); for (short i = 0; i < MEM_TRK_MAX_SIZE; i++) { - mTrkUART.Write(mExtTrkLog[i]); if (mExtTrkLog[i] == '\r') break; + mTrkUART.Write(mExtTrkLog[i]); } mExtTrkLock.Unlock(); } @@ -338,14 +341,17 @@ void *HeapCalloc(size_t n, size_t Size) #ifdef DEBUG if (EnableExternalMemoryTracer) { - mExtTrkLock.TimeoutLock(__FUNCTION__, 100000); + char LockTmpStr[64]; + strcpy_unsafe(LockTmpStr, __FUNCTION__); + strcat_unsafe(LockTmpStr, "_memTrk"); + mExtTrkLock.TimeoutLock(LockTmpStr, 10000); sprintf(mExtTrkLog, "calloc( %ld %ld )=%p-%p~%p\n\r", n, Size, ret, (void *)((uintptr_t)ret + (n * Size)), __builtin_return_address(0)); UniversalAsynchronousReceiverTransmitter::UART mTrkUART = UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM3); for (short i = 0; i < MEM_TRK_MAX_SIZE; i++) { - mTrkUART.Write(mExtTrkLog[i]); if (mExtTrkLog[i] == '\r') break; + mTrkUART.Write(mExtTrkLog[i]); } mExtTrkLock.Unlock(); } @@ -388,14 +394,17 @@ void *HeapRealloc(void *Address, size_t Size) #ifdef DEBUG if (EnableExternalMemoryTracer) { - mExtTrkLock.TimeoutLock(__FUNCTION__, 100000); + char LockTmpStr[64]; + strcpy_unsafe(LockTmpStr, __FUNCTION__); + strcat_unsafe(LockTmpStr, "_memTrk"); + mExtTrkLock.TimeoutLock(LockTmpStr, 10000); sprintf(mExtTrkLog, "realloc( %p %ld )=%p-%p~%p\n\r", Address, Size, ret, (void *)((uintptr_t)ret + Size), __builtin_return_address(0)); UniversalAsynchronousReceiverTransmitter::UART mTrkUART = UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM3); for (short i = 0; i < MEM_TRK_MAX_SIZE; i++) { - mTrkUART.Write(mExtTrkLog[i]); if (mExtTrkLog[i] == '\r') break; + mTrkUART.Write(mExtTrkLog[i]); } mExtTrkLock.Unlock(); } @@ -413,14 +422,17 @@ void HeapFree(void *Address) #ifdef DEBUG if (EnableExternalMemoryTracer) { - mExtTrkLock.TimeoutLock(__FUNCTION__, 100000); + char LockTmpStr[64]; + strcpy_unsafe(LockTmpStr, __FUNCTION__); + strcat_unsafe(LockTmpStr, "_memTrk"); + mExtTrkLock.TimeoutLock(LockTmpStr, 10000); sprintf(mExtTrkLog, "free( %p )~%p\n\r", Address, __builtin_return_address(0)); UniversalAsynchronousReceiverTransmitter::UART mTrkUART = UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM3); for (short i = 0; i < MEM_TRK_MAX_SIZE; i++) { - mTrkUART.Write(mExtTrkLog[i]); if (mExtTrkLog[i] == '\r') break; + mTrkUART.Write(mExtTrkLog[i]); } mExtTrkLock.Unlock(); } @@ -459,14 +471,17 @@ void *operator new(size_t Size) #ifdef DEBUG if (EnableExternalMemoryTracer) { - mExtTrkLock.TimeoutLock(__FUNCTION__, 100000); + char LockTmpStr[64]; + strcpy_unsafe(LockTmpStr, __FUNCTION__); + strcat_unsafe(LockTmpStr, "_memTrk"); + mExtTrkLock.TimeoutLock(LockTmpStr, 10000); sprintf(mExtTrkLog, "new( %ld )~%p\n\r", Size, __builtin_return_address(0)); UniversalAsynchronousReceiverTransmitter::UART mTrkUART = UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM3); for (short i = 0; i < MEM_TRK_MAX_SIZE; i++) { - mTrkUART.Write(mExtTrkLog[i]); if (mExtTrkLog[i] == '\r') break; + mTrkUART.Write(mExtTrkLog[i]); } mExtTrkLock.Unlock(); } @@ -485,14 +500,17 @@ void *operator new[](size_t Size) #ifdef DEBUG if (EnableExternalMemoryTracer) { - mExtTrkLock.TimeoutLock(__FUNCTION__, 100000); + char LockTmpStr[64]; + strcpy_unsafe(LockTmpStr, __FUNCTION__); + strcat_unsafe(LockTmpStr, "_memTrk"); + mExtTrkLock.TimeoutLock(LockTmpStr, 10000); sprintf(mExtTrkLog, "new[]( %ld )~%p\n\r", Size, __builtin_return_address(0)); UniversalAsynchronousReceiverTransmitter::UART mTrkUART = UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM3); for (short i = 0; i < MEM_TRK_MAX_SIZE; i++) { - mTrkUART.Write(mExtTrkLog[i]); if (mExtTrkLog[i] == '\r') break; + mTrkUART.Write(mExtTrkLog[i]); } mExtTrkLock.Unlock(); } @@ -512,14 +530,17 @@ void *operator new(unsigned long Size, std::align_val_t Alignment) #ifdef DEBUG if (EnableExternalMemoryTracer) { - mExtTrkLock.TimeoutLock(__FUNCTION__, 100000); + char LockTmpStr[64]; + strcpy_unsafe(LockTmpStr, __FUNCTION__); + strcat_unsafe(LockTmpStr, "_memTrk"); + mExtTrkLock.TimeoutLock(LockTmpStr, 10000); sprintf(mExtTrkLog, "new( %ld %#lx )~%p\n\r", Size, (uintptr_t)Alignment, __builtin_return_address(0)); UniversalAsynchronousReceiverTransmitter::UART mTrkUART = UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM3); for (short i = 0; i < MEM_TRK_MAX_SIZE; i++) { - mTrkUART.Write(mExtTrkLog[i]); if (mExtTrkLog[i] == '\r') break; + mTrkUART.Write(mExtTrkLog[i]); } mExtTrkLock.Unlock(); } @@ -538,14 +559,17 @@ void operator delete(void *Pointer) #ifdef DEBUG if (EnableExternalMemoryTracer) { - mExtTrkLock.TimeoutLock(__FUNCTION__, 100000); + char LockTmpStr[64]; + strcpy_unsafe(LockTmpStr, __FUNCTION__); + strcat_unsafe(LockTmpStr, "_memTrk"); + mExtTrkLock.TimeoutLock(LockTmpStr, 10000); sprintf(mExtTrkLog, "delete( %p )~%p\n\r", Pointer, __builtin_return_address(0)); UniversalAsynchronousReceiverTransmitter::UART mTrkUART = UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM3); for (short i = 0; i < MEM_TRK_MAX_SIZE; i++) { - mTrkUART.Write(mExtTrkLog[i]); if (mExtTrkLog[i] == '\r') break; + mTrkUART.Write(mExtTrkLog[i]); } mExtTrkLock.Unlock(); } @@ -564,14 +588,17 @@ void operator delete[](void *Pointer) #ifdef DEBUG if (EnableExternalMemoryTracer) { - mExtTrkLock.TimeoutLock(__FUNCTION__, 100000); + char LockTmpStr[64]; + strcpy_unsafe(LockTmpStr, __FUNCTION__); + strcat_unsafe(LockTmpStr, "_memTrk"); + mExtTrkLock.TimeoutLock(LockTmpStr, 10000); sprintf(mExtTrkLog, "delete[]( %p )~%p\n\r", Pointer, __builtin_return_address(0)); UniversalAsynchronousReceiverTransmitter::UART mTrkUART = UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM3); for (short i = 0; i < MEM_TRK_MAX_SIZE; i++) { - mTrkUART.Write(mExtTrkLog[i]); if (mExtTrkLog[i] == '\r') break; + mTrkUART.Write(mExtTrkLog[i]); } mExtTrkLock.Unlock(); } @@ -590,14 +617,17 @@ void operator delete(void *Pointer, long unsigned int Size) #ifdef DEBUG if (EnableExternalMemoryTracer) { - mExtTrkLock.TimeoutLock(__FUNCTION__, 100000); + char LockTmpStr[64]; + strcpy_unsafe(LockTmpStr, __FUNCTION__); + strcat_unsafe(LockTmpStr, "_memTrk"); + mExtTrkLock.TimeoutLock(LockTmpStr, 10000); sprintf(mExtTrkLog, "delete( %p %ld )~%p\n\r", Pointer, Size, __builtin_return_address(0)); UniversalAsynchronousReceiverTransmitter::UART mTrkUART = UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM3); for (short i = 0; i < MEM_TRK_MAX_SIZE; i++) { - mTrkUART.Write(mExtTrkLog[i]); if (mExtTrkLog[i] == '\r') break; + mTrkUART.Write(mExtTrkLog[i]); } mExtTrkLock.Unlock(); } @@ -617,14 +647,17 @@ void operator delete[](void *Pointer, long unsigned int Size) #ifdef DEBUG if (EnableExternalMemoryTracer) { - mExtTrkLock.TimeoutLock(__FUNCTION__, 100000); + char LockTmpStr[64]; + strcpy_unsafe(LockTmpStr, __FUNCTION__); + strcat_unsafe(LockTmpStr, "_memTrk"); + mExtTrkLock.TimeoutLock(LockTmpStr, 10000); sprintf(mExtTrkLog, "delete[]( %p %ld )~%p\n\r", Pointer, Size, __builtin_return_address(0)); UniversalAsynchronousReceiverTransmitter::UART mTrkUART = UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM3); for (short i = 0; i < MEM_TRK_MAX_SIZE; i++) { - mTrkUART.Write(mExtTrkLog[i]); if (mExtTrkLog[i] == '\r') break; + mTrkUART.Write(mExtTrkLog[i]); } mExtTrkLock.Unlock(); } diff --git a/Library/Convert.cpp b/Library/Convert.cpp index e2f6678..abf71e7 100644 --- a/Library/Convert.cpp +++ b/Library/Convert.cpp @@ -642,14 +642,17 @@ EXTERNC __no_stack_protector void *__memcpy_chk(void *dest, const void *src, siz #ifdef DEBUG if (EnableExternalMemoryTracer) { - mExtTrkLock.TimeoutLock(__FUNCTION__, 100000); + char LockTmpStr[64]; + strcpy_unsafe(LockTmpStr, __FUNCTION__); + strcat_unsafe(LockTmpStr, "_memTrk"); + mExtTrkLock.TimeoutLock(LockTmpStr, 10000); sprintf(mExtTrkLog, "memcpy( %p %p %ld %ld )=%p-%p>%p-%p~%p\n\r", dest, src, len, slen, src, (void *)((uintptr_t)src + len), dest, (void *)((uintptr_t)dest + len), __builtin_return_address(0)); UniversalAsynchronousReceiverTransmitter::UART mTrkUART = UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM3); for (short i = 0; i < MEM_TRK_MAX_SIZE; i++) { - mTrkUART.Write(mExtTrkLog[i]); if (mExtTrkLog[i] == '\r') break; + mTrkUART.Write(mExtTrkLog[i]); } mExtTrkLock.Unlock(); } @@ -710,14 +713,17 @@ EXTERNC __no_stack_protector void *__memset_chk(void *dest, int val, size_t len, #ifdef DEBUG if (EnableExternalMemoryTracer) { - mExtTrkLock.TimeoutLock(__FUNCTION__, 100000); + char LockTmpStr[64]; + strcpy_unsafe(LockTmpStr, __FUNCTION__); + strcat_unsafe(LockTmpStr, "_memTrk"); + mExtTrkLock.TimeoutLock(LockTmpStr, 10000); sprintf(mExtTrkLog, "memset( %p %d %ld %ld )=%#x>%p-%p~%p\n\r", dest, val, len, slen, val, dest, (void *)((uintptr_t)dest + len), __builtin_return_address(0)); UniversalAsynchronousReceiverTransmitter::UART mTrkUART = UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM3); for (short i = 0; i < MEM_TRK_MAX_SIZE; i++) { - mTrkUART.Write(mExtTrkLog[i]); if (mExtTrkLog[i] == '\r') break; + mTrkUART.Write(mExtTrkLog[i]); } mExtTrkLock.Unlock(); } @@ -784,14 +790,17 @@ EXTERNC __no_stack_protector void *__memmove_chk(void *dest, const void *src, si #ifdef DEBUG if (EnableExternalMemoryTracer) { - mExtTrkLock.TimeoutLock(__FUNCTION__, 100000); + char LockTmpStr[64]; + strcpy_unsafe(LockTmpStr, __FUNCTION__); + strcat_unsafe(LockTmpStr, "_memTrk"); + mExtTrkLock.TimeoutLock(LockTmpStr, 10000); sprintf(mExtTrkLog, "memmove( %p %p %ld %ld )=%p-%p>%p-%p~%p\n\r", dest, src, len, slen, dest, (void *)((uintptr_t)dest + len), src, (void *)((uintptr_t)src + len), __builtin_return_address(0)); UniversalAsynchronousReceiverTransmitter::UART mTrkUART = UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM3); for (short i = 0; i < MEM_TRK_MAX_SIZE; i++) { - mTrkUART.Write(mExtTrkLog[i]); if (mExtTrkLog[i] == '\r') break; + mTrkUART.Write(mExtTrkLog[i]); } mExtTrkLock.Unlock(); } @@ -889,14 +898,17 @@ EXTERNC __no_stack_protector void *memcpy(void *dest, const void *src, size_t le #ifdef DEBUG if (EnableExternalMemoryTracer) { - mExtTrkLock.TimeoutLock(__FUNCTION__, 100000); + char LockTmpStr[64]; + strcpy_unsafe(LockTmpStr, __FUNCTION__); + strcat_unsafe(LockTmpStr, "_memTrk"); + mExtTrkLock.TimeoutLock(LockTmpStr, 10000); sprintf(mExtTrkLog, "!memcpy( %p %p %ld )=%p-%p>%p-%p~%p\n\r", dest, src, len, dest, (void *)((uintptr_t)dest + len), src, (void *)((uintptr_t)src + len), __builtin_return_address(0)); UniversalAsynchronousReceiverTransmitter::UART mTrkUART = UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM3); for (short i = 0; i < MEM_TRK_MAX_SIZE; i++) { - mTrkUART.Write(mExtTrkLog[i]); if (mExtTrkLog[i] == '\r') break; + mTrkUART.Write(mExtTrkLog[i]); } mExtTrkLock.Unlock(); } @@ -911,14 +923,17 @@ EXTERNC __no_stack_protector void *memset(void *dest, int val, size_t len) #ifdef DEBUG if (EnableExternalMemoryTracer) { - mExtTrkLock.TimeoutLock(__FUNCTION__, 100000); + char LockTmpStr[64]; + strcpy_unsafe(LockTmpStr, __FUNCTION__); + strcat_unsafe(LockTmpStr, "_memTrk"); + mExtTrkLock.TimeoutLock(LockTmpStr, 10000); sprintf(mExtTrkLog, "!memset( %p %d %ld )=%p-%p~%p\n\r", dest, val, len, dest, (void *)((uintptr_t)dest + len), __builtin_return_address(0)); UniversalAsynchronousReceiverTransmitter::UART mTrkUART = UniversalAsynchronousReceiverTransmitter::UART(UniversalAsynchronousReceiverTransmitter::COM3); for (short i = 0; i < MEM_TRK_MAX_SIZE; i++) { - mTrkUART.Write(mExtTrkLog[i]); if (mExtTrkLog[i] == '\r') break; + mTrkUART.Write(mExtTrkLog[i]); } mExtTrkLock.Unlock(); }