diff --git a/src/system/kernel/debug/debug.cpp b/src/system/kernel/debug/debug.cpp index ed41d2469e..43fb6b561c 100644 --- a/src/system/kernel/debug/debug.cpp +++ b/src/system/kernel/debug/debug.cpp @@ -721,7 +721,11 @@ kernel_debugger_loop(const char* messagePrefix, const char* message, sCurrentKernelDebuggerMessagePrefix = messagePrefix; sCurrentKernelDebuggerMessage = message; - sCurrentKernelDebuggerMessageArgs = args; +#if __GNUC__ == 2 + __va_copy(sCurrentKernelDebuggerMessageArgs, args); +#else + va_copy(sCurrentKernelDebuggerMessageArgs, args); +#endif print_kernel_debugger_message(); @@ -816,6 +820,8 @@ kernel_debugger_loop(const char* messagePrefix, const char* message, } } + va_end(sCurrentKernelDebuggerMessageArgs); + delete_debug_alloc_pool(allocPool); sDebuggerOnCPU = previousCPU;